Submission #1225677
Source Code Expand
#include <bits/stdc++.h> using namespace std; int n, q; const int N = 300000; int a[N], b[N], c[N]; int del[N], odel[N], ncg[N], acg[N]; struct node { int l, r; } interval[N]; int tot; int used[N], ipb, npb; int comp_1(node a, node b) {return a.r > b.r;} struct Scomp_1 { int operator () (node a, node b) {return a.l < b.l;}}; int comp_2(node a, node b) {return a.l < b.l;} struct Scomp_2 { int operator () (node a, node b) {return a.r > b.r;}}; int ans0 = 0, ans[N]; multiset <node, Scomp_1> S1; multiset <node, Scomp_2> S2; int main() { cin >> n; n ++; for (int i = 1; i < n; ++ i) cin >> a[i] >> b[i]; for (int i = 1; i <= n; ++ i) cin >> c[i]; sort(c + 1, c + n + 1); for (int i = 1; i < n; ++ i) { a[i] = lower_bound(c + 1, c + n + 1, a[i]) - c, b[i] = lower_bound(c + 1, c + n + 1, b[i]) - c; if (b[i] < a[i]) interval[++ tot] = (node){b[i], a[i] - 1}; } for (int i = 1; i <= n; ++ i) del[i] = -1; for (int i = 1; i < n; ++ i) del[a[i]] ++; for (int i = 1; i <= n; ++ i) del[i] += del[i - 1]; for (int i = 1; i <= n; ++ i) odel[i] = del[i]; sort(interval + 1, interval + tot + 1, comp_1); for (int i = n, j = 1, p = 0; i >= 1; -- i) { p += ncg[i]; del[i] += p; while (j <= tot && interval[j].r == i) { S1.insert(interval[j]); j ++; } while (del[i] < -1) { multiset <node, Scomp_1> :: iterator nw; if (S1.empty()) goto LETS_SAY_GG; nw = S1.begin(); if (i < nw -> l) goto LETS_SAY_GG; else { ans0 --; acg[(nw -> l)] ++; acg[(nw -> r) + 1] --; ncg[(nw -> l) - 1] --; p ++; del[i] ++; } S1.erase(nw); } } for (int i = 1; i <= n; ++ i) acg[i] += acg[i - 1], del[i] = odel[i] + acg[i]; tot = 0; for (multiset <node, Scomp_1> :: iterator it = S1.begin(); it != S1.end(); ++ it) interval[++ tot] = *it; sort(interval + 1, interval + tot + 1, comp_2); memset(ncg, 0, sizeof ncg); for (int i = 1, j = 1, p = 0; i <= n; ++ i) { if (npb) { ans[i] = 666; continue; } p += ncg[i]; del[i] += p; while (j <= tot && interval[j].l == i) { S2.insert(interval[j]); j ++; } if (del[i] < 0) { multiset <node, Scomp_2> :: iterator nw; if (S2.empty()) goto I_WANT_JUMP; nw = S2.begin(); if (i > nw -> r) { I_WANT_JUMP:npb = 1; ans[i] = 666; continue; } else { ans[i] = ans[i - 1] - 1; ncg[(nw -> r) + 1] --; p ++; del[i] ++; } S2.erase(nw); } else ans[i] = ans[i - 1]; } cin >> q; for (int i = 1; i <= q; ++ i) { int d, e; cin >> d >> e; d = lower_bound(c + 1, c + n + 1, d) - c, e = lower_bound(c + 1, c + n + 1, e) - c; int nwans = -1; if (ans[d - 1] != 666) nwans = max(nwans, n + ans[d - 1] + ans0); if (ans[e - 1] != 666) nwans = max(nwans, n - 1 + ans[e - 1] + ans0); cout << nwans << "\n"; } return 0; LETS_SAY_GG:cin >> q; for (int i = 1; i <= q; ++ i) { cout << -1 << "\n"; } }
Submission Info
Submission Time | |
---|---|
Task | F - Two Faced Cards |
User | AwD |
Language | C++14 (GCC 5.4.1) |
Score | 2000 |
Code Size | 3779 Byte |
Status | AC |
Exec Time | 541 ms |
Memory | 20864 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 2000 / 2000 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | sample_01.txt, sample_02.txt, sample_03.txt |
All | sample_01.txt, sample_02.txt, sample_03.txt, sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt, subtask_1_26.txt, subtask_1_27.txt, subtask_1_28.txt, subtask_1_29.txt, subtask_1_30.txt, subtask_1_31.txt, subtask_1_32.txt, subtask_1_33.txt, subtask_1_34.txt, subtask_1_35.txt, subtask_1_36.txt, subtask_1_37.txt, subtask_1_38.txt, subtask_1_39.txt, subtask_1_40.txt, subtask_1_41.txt, subtask_1_42.txt, subtask_1_43.txt, subtask_1_44.txt, subtask_1_45.txt, subtask_1_46.txt, subtask_1_47.txt, subtask_1_48.txt, subtask_1_49.txt, subtask_1_50.txt, subtask_1_51.txt, subtask_1_52.txt, subtask_1_53.txt, subtask_1_54.txt, subtask_1_55.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample_01.txt | AC | 3 ms | 10496 KB |
sample_02.txt | AC | 3 ms | 10496 KB |
sample_03.txt | AC | 3 ms | 10496 KB |
subtask_1_01.txt | AC | 173 ms | 13696 KB |
subtask_1_02.txt | AC | 268 ms | 13440 KB |
subtask_1_03.txt | AC | 104 ms | 12160 KB |
subtask_1_04.txt | AC | 185 ms | 13952 KB |
subtask_1_05.txt | AC | 206 ms | 12800 KB |
subtask_1_06.txt | AC | 390 ms | 13824 KB |
subtask_1_07.txt | AC | 191 ms | 10624 KB |
subtask_1_08.txt | AC | 262 ms | 13184 KB |
subtask_1_09.txt | AC | 320 ms | 18048 KB |
subtask_1_10.txt | AC | 173 ms | 12928 KB |
subtask_1_11.txt | AC | 99 ms | 10496 KB |
subtask_1_12.txt | AC | 165 ms | 11904 KB |
subtask_1_13.txt | AC | 282 ms | 15360 KB |
subtask_1_14.txt | AC | 126 ms | 12288 KB |
subtask_1_15.txt | AC | 147 ms | 10496 KB |
subtask_1_16.txt | AC | 140 ms | 11136 KB |
subtask_1_17.txt | AC | 489 ms | 20608 KB |
subtask_1_18.txt | AC | 86 ms | 12160 KB |
subtask_1_19.txt | AC | 121 ms | 10752 KB |
subtask_1_20.txt | AC | 349 ms | 13312 KB |
subtask_1_21.txt | AC | 517 ms | 16128 KB |
subtask_1_22.txt | AC | 527 ms | 16128 KB |
subtask_1_23.txt | AC | 518 ms | 16128 KB |
subtask_1_24.txt | AC | 524 ms | 16128 KB |
subtask_1_25.txt | AC | 536 ms | 20864 KB |
subtask_1_26.txt | AC | 522 ms | 15616 KB |
subtask_1_27.txt | AC | 199 ms | 10752 KB |
subtask_1_28.txt | AC | 502 ms | 13824 KB |
subtask_1_29.txt | AC | 530 ms | 20864 KB |
subtask_1_30.txt | AC | 516 ms | 15616 KB |
subtask_1_31.txt | AC | 199 ms | 10752 KB |
subtask_1_32.txt | AC | 505 ms | 13824 KB |
subtask_1_33.txt | AC | 539 ms | 20864 KB |
subtask_1_34.txt | AC | 541 ms | 15616 KB |
subtask_1_35.txt | AC | 201 ms | 10752 KB |
subtask_1_36.txt | AC | 524 ms | 13824 KB |
subtask_1_37.txt | AC | 529 ms | 20864 KB |
subtask_1_38.txt | AC | 521 ms | 15616 KB |
subtask_1_39.txt | AC | 200 ms | 10752 KB |
subtask_1_40.txt | AC | 506 ms | 13824 KB |
subtask_1_41.txt | AC | 413 ms | 16128 KB |
subtask_1_42.txt | AC | 372 ms | 11904 KB |
subtask_1_43.txt | AC | 421 ms | 20736 KB |
subtask_1_44.txt | AC | 375 ms | 11648 KB |
subtask_1_45.txt | AC | 128 ms | 10752 KB |
subtask_1_46.txt | AC | 378 ms | 16128 KB |
subtask_1_47.txt | AC | 342 ms | 11648 KB |
subtask_1_48.txt | AC | 389 ms | 19840 KB |
subtask_1_49.txt | AC | 344 ms | 11520 KB |
subtask_1_50.txt | AC | 111 ms | 10752 KB |
subtask_1_51.txt | AC | 3 ms | 10496 KB |
subtask_1_52.txt | AC | 3 ms | 10496 KB |
subtask_1_53.txt | AC | 3 ms | 10496 KB |
subtask_1_54.txt | AC | 3 ms | 10496 KB |
subtask_1_55.txt | AC | 3 ms | 10496 KB |