ret_0

codeforces_contest_06.11.2017_a

Nov 5th, 2017
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.30 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int _M[11] = { 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 };
  4. int toUTime(int, int, int, int, int, int, int);
  5. void toFTime(int utime, int &d, int &M, int &h, int &m);
  6. main()
  7. {
  8.     int d, M, y, h, m, n;
  9.     scanf("%i.%i.%i %i:%i\n%i\n", &d, &M, &y, &h, &m, &n);
  10.     //printf("\n%i.%i.%i %i:%i\n%i", d, M, y, h, m, n);
  11.     int** a = new int* [n];
  12.     for(int i = 0; i < n; i++)
  13.         a[i] = new int [3];
  14.     for(int i = 0; i < n; i++)
  15.         scanf("%i %i %i", &a[i][0], &a[i][1], &a[i][2]);
  16.     //printf("\n");
  17.     for(int i = 0; i < n; i++)
  18.     {
  19.         int t = toUTime(d, M, h, m, a[i][0], a[i][1], a[i][2]);
  20.         int d2, M2, h2, m2;
  21.         toFTime(t, d2, M2, h2, m2);
  22.         string dd, MM, hh, mm;
  23.         if(d2 > 9)
  24.             printf("%i.", d2);
  25.         else
  26.             printf("0%i.", d2);
  27.         if(M2 > 9)
  28.             printf("%i.2017 ", M2);
  29.         else
  30.             printf("0%i.2017 ", M2);
  31.         if(h2 > 9)
  32.             printf("%i:", h2);
  33.         else
  34.             printf("0%i:", h2);
  35.         if(m2 > 9)
  36.             printf("%i\n", m2);
  37.         else
  38.             printf("0%i\n", m2);
  39.         /*
  40.         dd = (d2 < 10 ? '0' + itoa(d2) : itoa(d2));
  41.         MM = (M2 < 10 ? '0' + itoa(M2) : itoa(M2));
  42.         hh = (h2 < 10 ? '0' + itoa(h2) : itoa(h2));
  43.         mm = (m2 < 10 ? '0' + itoa(m2) : itoa(m2));
  44.         */
  45.         //printf("%s.%s.2017 %s:%s", dd, MM, hh, mm);
  46.     }
  47.  
  48.     /*
  49.     for(int i = 0; i < n; i++)
  50.         printf("%i %i %i\n", a[i][0], a[i][1], a[i][2]);
  51.     int ut = toUTime(d, M, h, m);
  52.     printf("UTime of date is %i\n", ut);
  53.     int dd, MM, hh, mm;
  54.     toFTime(ut, dd, MM, hh, mm);
  55.     printf("FTime: %i.%i.%i %i:%i", dd, MM, 2017, hh, mm);
  56.     */
  57. }
  58.  
  59. int toUTime(int d, int M, int h, int m, int dd = 0, int hh = 0, int mm = 0)
  60. {
  61.     int r = m - mm;
  62.     r += (h - hh) * 60;
  63.     r += (d - dd) * 24 * 60;
  64.     r += (M > 1 ? _M[M-2] * 24 * 60 : 0);
  65.     return r;
  66. }
  67.  
  68. void toFTime(int utime, int &d, int &M, int &h, int &m)
  69. {
  70.     M = 0;
  71.     for(int i = 0; i < 11; i++)
  72.     {
  73.         if(_M[i] < utime / (24 * 60))
  74.             M++;
  75.     }
  76.     utime -= _M[M-1] * 24 * 60;
  77.     d = utime / (24 * 60);
  78.     utime -= d * 24 * 60;
  79.     h = utime / 60;
  80.     utime -= h * 60;
  81.     m = utime;
  82.     M++;
  83. }
Advertisement
Add Comment
Please, Sign In to add comment