2372021-03-05 14:10:08balintttÁdám és Éva együttcpp14Accepted 50/5052ms7036 KiB
#include<bits/stdc++.h>

using namespace std;

vector<pair<int,int>> v;
vector<pair<int,int>> v2;

int n, m;

int main(){
    cin >> n >> n;
    v.resize(n);
    for(int i=0;i<n;i++){
        cin >> v[i].first >> v[i].second;
    }
    cin >> m;
    v2.resize(m);
    for(int i=0;i<m;i++){
        cin >> v2[i].first >> v2[i].second;
    }
    int poi1 = 0, poi2 = 0;
    queue<pair<int,int>> q;
    while(poi1 < n && poi2 < m){
        while(poi1 < n && poi2 < m && (v[poi1].second <= v2[poi2].first || v[poi1].first >= v2[poi2].second) ){
            if(v[poi1].second <= v2[poi2].first){
                ++poi1;
            }
            if(v[poi1].first >= v2[poi2].second){
                ++poi2;
            }
        }
        if(poi1 < n && poi2 < m){
            q.push({max(v[poi1].first, v2[poi2].first), min(v[poi1].second, v2[poi2].second)});
            if(v[poi1].second < v2[poi2].second){
                ++poi1;
            } else {
                ++poi2;
            }
        }
    }
    cout << q.size() << '\n';
    while(!q.empty()){
        cout << q.front().first << ' ' << q.front().second << '\n';
        q.pop();
    }
return 0;
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/02ms1796 KiB
2Accepted0/01ms1800 KiB
3Accepted2/21ms1836 KiB
4Accepted2/21ms1836 KiB
5Accepted2/21ms1840 KiB
6Accepted2/21ms1740 KiB
7Accepted2/21ms1848 KiB
8Accepted2/21ms1852 KiB
9Accepted2/21ms1852 KiB
10Accepted2/21ms1860 KiB
11Accepted2/21ms1860 KiB
12Accepted2/21ms1868 KiB
13Accepted2/21ms1872 KiB
14Accepted2/21ms1876 KiB
15Accepted2/21ms1876 KiB
16Accepted2/234ms3248 KiB
17Accepted3/334ms3888 KiB
18Accepted3/341ms4528 KiB
19Accepted4/435ms5100 KiB
20Accepted4/443ms5840 KiB
21Accepted4/439ms6396 KiB
22Accepted4/452ms7036 KiB