151382025-02-13 16:19:08horkaÁdám és Éva együttcpp17Accepted 50/5065ms5812 KiB
#include <bits/stdc++.h>
using namespace std;
vector<array<int, 2>> ans;
void add(int l, int r)
{
    if(l<r) ans.push_back({l,r});
}

int main()
{
    int p,n; cin>>p>>n;
    set<array<int, 3>> s;
    for(int i=0; i<n; i++)
    {
        int l,r; cin>>l>>r;
        s.insert({l,1,0});
        s.insert({r+1,0,0});
    }
    cin>>n;
    while(n--)
    {
        int l,r; cin>>l>>r;
        s.insert({l,1,1});
        s.insert({r+1,0,1});
    }
    int l1=0,l2=0;
    for(auto [ido,tip,ki]:s)
    {
        if(tip==0)
        {
            if(l1 && l2) add(max(l1,l2),ido-1);
            if(ki==1)
            {
                l2=0;
            }
            else l1=0;
        }
        else
        {
            if(ki==0) l1=ido;
            else l2=ido;
        }
    }
    cout<<ans.size()<<"\n";
    for(auto &[l,r]:ans)
        cout<<l<<" "<<r<<"\n";
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms316 KiB
2Accepted0/01ms316 KiB
3Accepted2/21ms500 KiB
4Accepted2/21ms316 KiB
5Accepted2/21ms316 KiB
6Accepted2/21ms316 KiB
7Accepted2/21ms508 KiB
8Accepted2/21ms316 KiB
9Accepted2/21ms500 KiB
10Accepted2/21ms316 KiB
11Accepted2/21ms316 KiB
12Accepted2/21ms316 KiB
13Accepted2/21ms316 KiB
14Accepted2/21ms316 KiB
15Accepted2/21ms376 KiB
16Accepted2/263ms5556 KiB
17Accepted3/361ms5604 KiB
18Accepted3/354ms5116 KiB
19Accepted4/461ms5344 KiB
20Accepted4/465ms5812 KiB
21Accepted4/461ms5648 KiB
22Accepted4/461ms5528 KiB