Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <queue>
- #include <tuple>
- using namespace std;
- #define tiii tuple<int, int, int>
- int q, nt;
- int main(){
- int s, e, in, c, j;
- bool inv;
- scanf("%d", &q);
- for(int k = 1; k <= q; ++k){
- scanf("%d", &nt);
- priority_queue<tiii, vector<tiii>, greater<tiii>> q;
- vector<char> ans(nt, '\0');
- for(int i = 0; i < nt; ++i){
- scanf("%d %d", &s, &e);
- q.push(make_tuple(s, e, i));
- }
- inv = false;
- c = 0;
- j = 0;
- while(!q.empty()){
- s = get<0>(q.top());
- e = get<1>(q.top());
- in = get<2>(q.top());
- q.pop();
- if(s < c && s < j){
- inv = true;
- break;
- } else if(s >= c){
- ans[in] = 'C';
- c = e;
- } else {
- ans[in] = 'J';
- j = e;
- }
- }
- cout << "Case #" << k << ": ";
- if(inv){
- cout << "IMPOSSIBLE\n";
- } else {
- for(auto x : ans){
- cout << x;
- }
- cout << "\n";
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement