artemgf

Долгожители

Nov 13th, 2017
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.63 KB | None | 0 0
  1. #define _USE_MATH_DEFINES
  2. #include <iostream>
  3. #include <string>
  4. #include <map>
  5. #include <set>
  6. #include <algorithm>
  7. #include <vector>
  8. #include <stdio.h>
  9. #include <cmath>
  10. #include <math.h>
  11. #include <queue>
  12. #include <stack>
  13. #include <climits>
  14. #include <deque>
  15. #include <ctime>
  16.  
  17. using namespace std;
  18.  
  19. typedef long long ll;
  20. typedef unsigned long long ull;
  21. typedef unsigned int ui;
  22.  
  23. ll scd(int dd, int mm, int yy)
  24. {
  25.     ll day = 0;
  26.     switch (mm)
  27.     {
  28.     case 2: day += 31; break;
  29.     case 3: day += 59; break;
  30.     case 4: day += 90; break;
  31.     case 5: day += 120; break;
  32.     case 6: day += 151; break;
  33.     case 7: day += 181; break;
  34.     case 8: day += 212; break;
  35.     case 9: day += 243; break;
  36.     case 10: day += 273; break;
  37.     case 11: day += 304; break;
  38.     case 12: day += 334; break;
  39.     default:
  40.         break;
  41.     }
  42.     day += dd;
  43.     if (yy % 4 == 0 && (yy % 100 != 0 || yy % 400 == 0))
  44.         if (mm > 2)
  45.             day += 1;
  46.     yy--;
  47.     day += (yy - yy / 4 + yy / 100 - yy / 400) * 365 + (yy / 4 - yy / 100 + yy / 400) * 366;
  48.     return day;
  49. }
  50. int main()
  51. {
  52.     int dd, mm, yy;
  53.     ll nn;
  54.     map<ll, int> old;
  55.     ll prom;
  56.     cin >> nn;
  57.     ll max = 0, maxi = 0, maxl = 0;
  58.     for (int i = 1; i <= nn; i++)
  59.     {
  60.         scanf("%d.%d.%d", &dd, &mm, &yy);
  61.         prom = scd(dd, mm, yy);
  62.         ll last = prom;
  63.         scanf("%d.%d.%d", &dd, &mm, &yy);
  64.         scanf("%d.%d.%d", &dd, &mm, &yy);
  65.         ll e = scd(dd, mm, yy);
  66.         prom = abs(e - prom);
  67.         if (max <= prom)
  68.         {
  69.             if (max == prom)
  70.             {
  71.                 if (maxl > last)
  72.                 {
  73.                     max = prom;
  74.                     maxi = i;
  75.                     maxl = last;
  76.                 }
  77.             }
  78.             else
  79.             {
  80.                 max = prom;
  81.                 maxi = i;
  82.                 maxl = last;
  83.             }
  84.         }
  85.     }
  86.  
  87.     cout << maxi;
  88.     system("pause");
  89.     return 0;
  90. }
Advertisement
Add Comment
Please, Sign In to add comment