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 |