926 2022. 01. 28 13:57:25 Valaki2 Ádám és Éva együtt cpp14 Elfogadva 50/50 14ms 7628 KiB
#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define pb push_back
#define mp make_pair
#define fi first
#define se second

struct segment {
    int l, r;
    segment() : l(0), r(0) {}
    segment(int l_, int r_) : l(l_), r(r_) {}
};

bool before(segment a, segment b) {
    return a.r <= b.l;
}

bool mergeable(segment a, segment b) {
    if(a.l >= b.r) return false;
    if(b.l >= a.r) return false;
    return true;
}

bool after(segment a, segment b) {
    return b.r <= a.l;
}

segment do_merge(segment a, segment b) {
    return segment(max(a.l, b.l), min(a.r, b.r));
}

int p, n, m;
vector<segment> a;
vector<segment> b;

vector<segment> ans;

void solve() {
    cin >> p;
    cin >> n;
    for(int i = 0; i < n; i++) {
        int x, y;
        cin >> x >> y;
        a.pb(segment(x, y));
    }
    cin >> m;
    for(int i = 0; i < m; i++) {
        int x, y;
        cin >> x >> y;
        b.pb(segment(x, y));
    }
    int i = 0, j = 0;
    while(i < n && j < m) {
        if(mergeable(a[i], b[j])) {
            ans.pb(do_merge(a[i], b[j]));
            if(a[i].r <= b[j].r) {
                i++;
            } else {
                j++;
            }
        } else if(before(a[i], b[j])) {
            i++;
        } else if(after(a[i], b[j])) {
            j++;
        }
    }
    cout << ans.size() << "\n";
    for(segment s : ans) {
        cout << s.l << " " << s.r << "\n";
    }
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    solve();
    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 2ms 1844 KiB
2 Elfogadva 0/0 1ms 1912 KiB
3 Elfogadva 2/2 2ms 1968 KiB
4 Elfogadva 2/2 1ms 1972 KiB
5 Elfogadva 2/2 1ms 1972 KiB
6 Elfogadva 2/2 1ms 1980 KiB
7 Elfogadva 2/2 1ms 1980 KiB
8 Elfogadva 2/2 1ms 1988 KiB
9 Elfogadva 2/2 1ms 1988 KiB
10 Elfogadva 2/2 1ms 1996 KiB
11 Elfogadva 2/2 1ms 1996 KiB
12 Elfogadva 2/2 1ms 2008 KiB
13 Elfogadva 2/2 1ms 2008 KiB
14 Elfogadva 2/2 1ms 2012 KiB
15 Elfogadva 2/2 1ms 2016 KiB
16 Elfogadva 2/2 14ms 3848 KiB
17 Elfogadva 3/3 14ms 4484 KiB
18 Elfogadva 3/3 14ms 4964 KiB
19 Elfogadva 4/4 13ms 5688 KiB
20 Elfogadva 4/4 14ms 6576 KiB
21 Elfogadva 4/4 14ms 6992 KiB
22 Elfogadva 4/4 14ms 7628 KiB