Участник:Andriygav/SKYLINE2

Материал из DISCOPAL
Перейти к: навигация, поиск
  • компилятор: gcc 8.3
#include <algorithm>
#include <vector>
#include <iostream>
using namespace std;
 
pair<int, int> a[1048576];
 
bool cmp(pair<int, int> x, pair<int, int> y){
    if(x.first != y.first){
        return x.first > y.first;
    }
    return x.second > y.second;
}
 
int main(){
    int t;
    cin >> t;
    while(t--){
        int n;
        cin >> n;
        for(int i = 0; i < n; i++){
            cin >> a[i].first >> a[i].second;
        }
 
        sort(a, a + n, cmp);
 
        int mn = a[0].first;
        int mx = a[0].second;
        vector<pair<int, int>> ans;
        for(int i = 0; i < n; i++){
            if((mn == a[i].first && mx == a[i].second) || (mn > a[i].first && mx < a[i].second)){
                mn = a[i].first;
                mx = a[i].second;
                ans.push_back(a[i]);
            }
        }
        cout << ans.size() << endl;
        for(int i = 0; i < ans.size(); i++){
            cout << ans[i].first << " " << ans[i].second << endl;
        }
    }
    return 0;
}