Advertisement
mickypinata

GCJ2020-Q3: Parenting Partnering Returns

Apr 3rd, 2020
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.22 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <queue>
  4. #include <tuple>
  5. using namespace std;
  6.  
  7. #define tiii tuple<int, int, int>
  8.  
  9. int q, nt;
  10.  
  11. int main(){
  12.  
  13.     int s, e, in, c, j;
  14.     bool inv;
  15.  
  16.     scanf("%d", &q);
  17.     for(int k = 1; k <= q; ++k){
  18.         scanf("%d", &nt);
  19.         priority_queue<tiii, vector<tiii>, greater<tiii>> q;
  20.         vector<char> ans(nt, '\0');
  21.         for(int i = 0; i < nt; ++i){
  22.             scanf("%d %d", &s, &e);
  23.             q.push(make_tuple(s, e, i));
  24.         }
  25.         inv = false;
  26.         c = 0;
  27.         j = 0;
  28.         while(!q.empty()){
  29.             s = get<0>(q.top());
  30.             e = get<1>(q.top());
  31.             in = get<2>(q.top());
  32.             q.pop();
  33.             if(s < c && s < j){
  34.                 inv = true;
  35.                 break;
  36.             } else if(s >= c){
  37.                 ans[in] = 'C';
  38.                 c = e;
  39.             } else {
  40.                 ans[in] = 'J';
  41.                 j = e;
  42.             }
  43.         }
  44.         cout << "Case #" << k << ": ";
  45.         if(inv){
  46.             cout << "IMPOSSIBLE\n";
  47.         } else {
  48.             for(auto x : ans){
  49.                 cout << x;
  50.             }
  51.             cout << "\n";
  52.         }
  53.     }
  54.  
  55.     return 0;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement