Advertisement
mickypinata

GODA-Q2: Busy Day

Jul 17th, 2021
850
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. typedef pair<int, int> pii;
  5.  
  6. const int N = 4e4;
  7.  
  8. int convertDate(char *str){
  9.     char *token = strtok(str, "-");
  10.     int date = 0;
  11.     for(int i = 1; i <= 3 && token != NULL; ++i){
  12.         if(i == 1){
  13.             date += atoi(token) * 10000;
  14.         } else if(i == 2){
  15.             date += atoi(token) * 100;
  16.         } else if(i == 3){
  17.             date += atoi(token);
  18.         }
  19.         token = strtok(NULL, "-");
  20.     }
  21.     return date;
  22. }
  23.  
  24. int main(){
  25.  
  26.     int nTrip;
  27.     scanf("%d", &nTrip);
  28.     vector<pii> events;
  29.     for(int i = 1; i <= nTrip; ++i){
  30.         char strA[11], strB[11];
  31.         scanf("%s %s", strA, strB);
  32.         int st = convertDate(strA);
  33.         int ed = convertDate(strB);
  34.         events.emplace_back(st, 2);
  35.         events.emplace_back(ed, 1);
  36.     }
  37.     sort(events.begin(), events.end());
  38.  
  39.     int cnt = 0;
  40.     int mx = 0;
  41.     int ans = 0;
  42.     for(pii p : events){
  43.         int tme = p.first;
  44.         int add = p.second;
  45.         if(add == 1){ // Remove
  46.             --cnt;
  47.         } else if(add == 2){ // Add
  48.             ++cnt;
  49.             if(cnt > mx){
  50.                 mx = cnt;
  51.                 ans = tme;
  52.             }
  53.         }
  54.     }
  55.     int year = ans / 10000;
  56.     ans %= 10000;
  57.     int month = ans / 100;
  58.     ans %= 100;
  59.     int day = ans;
  60.     printf("%04d-%02d-%02d", year, month, day);
  61.  
  62.     return 0;
  63. }
  64.  
Advertisement
RAW Paste Data Copied
Advertisement