145482025-01-15 07:07:50csdavidÁdám és Éva együttcpp17Accepted 50/5037ms1248 KiB
#include <iostream>
#include <vector>
using namespace std;
struct idoszak{
    int kezd, veg;
};

int main()
{
    vector<pair<int, int>> eredmeny;
    int na, ne, ido;
    cin >> ido;
    cin >> na;
    idoszak a[na];
    for(idoszak& it:a){
        cin >> it.kezd >> it.veg;
    }
    cin >> ne;
    idoszak e[ne];
    for(idoszak& it:e){
        cin >> it.kezd >> it.veg;
    }
    int i1=0, i2=0;
    while(i1<na&&i2<ne){
        int kezd, veg;
        //cout << "i1: " << i1 << "\ni2: " << i2 << "\n\n";
        if(a[i1].veg<e[i2].kezd){
            i1++;
        }
        else if(e[i2].veg<a[i1].kezd){
            i2++;
        }
        else{
            kezd=max(a[i1].kezd, e[i2].kezd);
            veg=min(a[i1].veg, e[i2].veg);
            if(kezd!=veg) eredmeny.push_back(make_pair(kezd, veg));
            if(a[i1].veg<e[i2].veg){
                i1++;
            }
            else if(a[i1].veg>e[i2].veg){
                i2++;
            }
            else{
                i1++;
                i2++;
            }
        }

    }
    cout << eredmeny.size() << '\n';
    for(pair<int, int>& it:eredmeny){
        cout << it.first << ' ' << it.second << '\n';
    }
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms316 KiB
2Accepted0/01ms316 KiB
3Accepted2/21ms316 KiB
4Accepted2/21ms316 KiB
5Accepted2/21ms316 KiB
6Accepted2/21ms316 KiB
7Accepted2/21ms508 KiB
8Accepted2/21ms352 KiB
9Accepted2/21ms556 KiB
10Accepted2/21ms524 KiB
11Accepted2/21ms500 KiB
12Accepted2/21ms316 KiB
13Accepted2/21ms316 KiB
14Accepted2/21ms316 KiB
15Accepted2/21ms316 KiB
16Accepted2/235ms1236 KiB
17Accepted3/335ms1120 KiB
18Accepted3/332ms1148 KiB
19Accepted4/434ms1200 KiB
20Accepted4/437ms1112 KiB
21Accepted4/435ms1248 KiB
22Accepted4/435ms1200 KiB