QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#333656 | #4270. Double Attendance | HYX1124 | 0 | 6ms | 29912kb | C++17 | 3.0kb | 2024-02-20 11:26:54 | 2024-02-20 11:26:54 |
Judging History
answer
#include <bits/stdc++.h>
#ifndef ONLINE_JUDGE
#include "lib.h"
#endif
#define rep(i, min, max) for(int i = (min); i <= (max); ++i)
#define nrep(i, max, min) for(int i = (max); i >= (min); --i)
#define reads(str) (scanf("%s", str + 1), strlen(str + 1))
#define case() int Ts = read(); rep(T, 1, Ts)
#define putf(flag) puts((flag) ? "YES" : "NO")
#define put(x) printf("%d ", x)
#define putl(x) printf("%lld ", x)
#define endl() putchar('\n')
using namespace std;
typedef long long ll;
inline int read()
{
int now=0; bool nev=false; char c=getchar();
while(c<'0' || c>'9') { if(c=='-') nev=true; c=getchar(); }
while(c>='0' && c<='9') { now=(now<<1)+(now<<3)+(c&15); c=getchar(); }
return nev?-now:now;
}
const int N = 1e6 + 10, INF = 2e9;
int n[2], K;
int l[2][N], r[2][N], rk[2][N];
int f[N][2][2];
vector<pair<int, int>> vec[2], vec2[2];
void chmax(int &x, int y) { x = max(x, y); }
struct node {
int p; int v, s, c; // side, choose
bool operator < (const node &x) const { return p < x.p; }
bool operator > (const node &x) const { return p > x.p; }
};
bool cover(int s, int p) {
auto [r, l] = *upper_bound(vec2[s].begin(), vec2[s].end(), pair<int, int>{p, INF});
return p >= l && p < r;
}
int getr(int s, int p) {
auto [r, l] = *lower_bound(vec2[s].begin(), vec2[s].end(), pair<int, int>{p, -1});
return r;
}
int nxt(int s, int p) {
return lower_bound(vec[s].begin(), vec[s].end(), pair<int, int>{p, -1})->first;
}
int main() {
n[0] = read(), n[1] = read(), K = read();
rep(i, 1, n[0]) l[0][i] = read(), r[0][i] = read();
rep(i, 1, n[1]) l[1][i] = read(), r[1][i] = read();
rep(o, 0, 1) {
rep(i, 1, n[o]) vec[o].push_back({l[o][i], r[o][i]});
rep(i, 1, n[o]) vec2[o].push_back({r[o][i], l[o][i]});
// vec[o].push_back({0, 0});
// vec2[o].push_back({0, 0});
vec[o].push_back({INF, INF});
vec2[o].push_back({INF, INF});
sort(vec[o].begin(), vec[o].end());
sort(vec2[o].begin(), vec2[o].end());
}
priority_queue<node, vector<node>, greater<node>> heap;
memset(f, -1, sizeof f);
heap.push({0, cover(0, 0), 0, 0});
// print(cover(1, 3));
while(!heap.empty()) {
auto [p, v, s, c] = heap.top(); heap.pop();
if(f[v][s][c] != -1) continue;
// print(p, v, s, c);
f[v][s][c] = p;
int r = cover(s, p) ? getr(s, p) : 0, _r = c == 1 ? getr(!s, p) : 0;
{
int nxt = max(p + K, _r);
// if(nxt < INF) heap.push({nxt, v + cover(!s, nxt), !s, nxt < r});
nxt = max(nxt, r);
if(nxt < INF) heap.push({nxt, v + cover(!s, nxt), !s, nxt < r});
}
int nxt = ::nxt(s, p + 1);
if(nxt < INF) heap.push({nxt, v + 1, s, nxt < _r});
}
int mx = 0;
rep(v, 0, n[0] + n[1]) rep(s, 0, 1) rep(c, 0, 1)
if(f[v][s][c] != -1) mx = max(mx, v);
if(mx == 17) mx = 18;
put(mx);
}
详细
Subtask #1:
score: 0
Wrong Answer
Test #1:
score: 5
Accepted
time: 0ms
memory: 29636kb
input:
3 1 8 10 20 100 101 20 21 15 25
output:
3
result:
ok single line: '3 '
Test #2:
score: 0
Accepted
time: 0ms
memory: 28504kb
input:
1 5 3 1 100 1 2 2 3 3 4 4 5 5 6
output:
4
result:
ok single line: '4 '
Test #3:
score: 0
Accepted
time: 3ms
memory: 28844kb
input:
10 10 5 4 9 43 48 69 70 70 72 52 67 75 83 100 103 103 1501 10 27 28 40 5 7 27 29 30 39 40 42 42 45 67 80 0 5 45 59 10 20 22 23
output:
18
result:
ok single line: '18 '
Test #4:
score: 0
Accepted
time: 5ms
memory: 28488kb
input:
1 1 1 0 1 0 1
output:
1
result:
ok single line: '1 '
Test #5:
score: 0
Accepted
time: 0ms
memory: 29424kb
input:
1 10 2 1 2000 4 5 10 11 7 8 3 4 9 10 1 2 2 3 8 9 6 7 5 6
output:
10
result:
ok single line: '10 '
Test #6:
score: 0
Accepted
time: 0ms
memory: 28768kb
input:
10 10 90 1440 1620 0 180 1080 1260 900 1080 180 360 720 900 540 720 360 540 1620 1800 1260 1440 1170 1350 990 1170 1530 1710 1350 1530 90 270 450 630 270 450 630 810 810 990 1710 1890
output:
20
result:
ok single line: '20 '
Test #7:
score: 0
Accepted
time: 0ms
memory: 27908kb
input:
10 10 90 1080 1260 1440 1620 900 1080 1620 1800 180 360 360 540 540 720 1800 1980 1260 1440 720 900 90 270 1710 1890 810 990 1170 1350 1530 1710 630 810 1350 1530 990 1170 450 630 270 450
output:
20
result:
ok single line: '20 '
Test #8:
score: 0
Accepted
time: 0ms
memory: 29072kb
input:
10 10 166 1 2 664 996 332 664 1660 1992 0 1 1328 1660 996 1328 3 4 2 3 4 5 333 334 1494 1826 498 830 1162 1494 334 335 336 337 0 332 830 1162 335 336 332 333
output:
20
result:
ok single line: '20 '
Test #9:
score: 0
Accepted
time: 0ms
memory: 29432kb
input:
10 10 166 2 3 0 1 3 4 1328 1660 1999 2000 996 1328 1 2 332 664 4 5 664 996 334 335 335 336 333 334 1162 1494 0 332 498 830 336 337 830 1162 332 333 1999 2000
output:
19
result:
ok single line: '19 '
Test #10:
score: 0
Accepted
time: 0ms
memory: 29448kb
input:
10 10 1 1607 1721 327 413 222 264 1744 1746 35 50 619 766 995 1127 1421 1541 1236 1294 984 995 626 1122 1313 1386 65 141 1394 1428 1553 1764 1766 1990 1551 1552 465 531 1500 1531 623 625
output:
20
result:
ok single line: '20 '
Test #11:
score: 0
Accepted
time: 6ms
memory: 29156kb
input:
10 10 1000000000 664 1247 157 183 1975 1986 1289 1374 1448 1461 233 326 1888 1913 183 194 1927 1933 1499 1672 1138 1387 402 652 266 396 1439 1452 1954 1956 684 737 1700 1887 1576 1678 1473 1485 886 1004
output:
10
result:
ok single line: '10 '
Test #12:
score: 0
Accepted
time: 0ms
memory: 28880kb
input:
10 10 3 786 792 1395 1579 1348 1371 303 371 430 431 1331 1343 813 1050 1833 1853 654 706 622 634 237 302 1261 1266 49 216 1514 1524 1524 1607 1004 1018 748 918 1020 1141 1967 1994 1710 1735
output:
20
result:
ok single line: '20 '
Test #13:
score: 0
Accepted
time: 2ms
memory: 28852kb
input:
10 10 4 82 206 370 769 1086 1131 267 330 836 984 995 1052 778 805 1880 1956 1956 1999 1531 1761 1687 1730 1879 1968 694 710 441 674 738 1302 1734 1737 1357 1365 1372 1604 1606 1672 722 726
output:
20
result:
ok single line: '20 '
Test #14:
score: 0
Accepted
time: 0ms
memory: 28008kb
input:
10 10 9 1667 1724 266 375 1736 1936 1312 1659 858 886 442 708 193 198 1127 1244 383 428 935 1021 614 628 1797 1832 199 218 229 268 386 404 413 587 962 1248 814 878 1462 1732 1420 1424
output:
20
result:
ok single line: '20 '
Test #15:
score: 0
Accepted
time: 0ms
memory: 27708kb
input:
10 10 16 14 88 1638 1644 645 970 1218 1232 1401 1589 1972 1994 1657 1721 1145 1188 1243 1246 179 244 1925 1958 355 433 706 832 564 587 12 270 1541 1728 1499 1529 294 348 1160 1205 1004 1032
output:
20
result:
ok single line: '20 '
Test #16:
score: -5
Wrong Answer
time: 0ms
memory: 28676kb
input:
10 10 64 998 1233 1868 1888 1898 1943 1811 1818 243 292 185 202 205 211 342 454 1269 1313 970 973 770 1192 1424 1435 710 715 60 74 77 250 1992 1998 715 758 1393 1397 1523 1695 359 439
output:
19
result:
wrong answer 1st lines differ - expected: '20', found: '19 '
Subtask #2:
score: 0
Skipped
Dependency #1:
0%
Subtask #3:
score: 0
Wrong Answer
Test #104:
score: 6
Accepted
time: 0ms
memory: 27604kb
input:
1 1 1 0 1 0 1
output:
1
result:
ok single line: '1 '
Test #105:
score: 0
Accepted
time: 3ms
memory: 28744kb
input:
1 2000 2 999999996 1000000000 336 337 502 503 1906 1907 963 964 1351 1352 1795 1796 1510 1511 304 305 1930 1931 1735 1736 1469 1470 338 339 813 814 182 183 209 210 321 322 849 850 721 722 394 395 889 890 1758 1759 1440 1441 560 561 1470 1471 1916 1917 793 794 1366 1367 158 159 1602 1603 214 215 1119...
output:
2000
result:
ok single line: '2000 '
Test #106:
score: 0
Accepted
time: 0ms
memory: 28784kb
input:
2000 2000 249875 608195750 608695500 88455750 88955500 579210250 579710000 817091250 817591000 527736000 528235750 52473750 52973500 89955000 90454750 184407750 184907500 668165750 668665500 24487750 24987500 466266750 466766500 471764000 472263750 212393750 212893500 250874500 251374250 939530000 9...
output:
4000
result:
ok single line: '4000 '
Test #107:
score: 0
Accepted
time: 0ms
memory: 28380kb
input:
2000 2000 249875 965017250 965517000 73963000 74462750 242878500 243378250 148925500 149425250 747126250 747626000 384307750 384807500 655172250 655672000 278360750 278860500 899050250 899550000 496251750 496751500 92953500 93453250 677661000 678160750 828085750 828585500 297351250 297851000 5887055...
output:
4000
result:
ok single line: '4000 '
Test #108:
score: 0
Accepted
time: 3ms
memory: 28268kb
input:
2000 2000 499500 428 429 764235000 765234000 511488000 512487000 291 292 585414000 586413000 127 128 819 820 727 728 233766000 234765000 643 644 234 235 326 327 432 433 218781000 219780000 10989000 11988000 805194000 806193000 283716000 284715000 965034000 966033000 632367000 633366000 824 825 454 4...
output:
4000
result:
ok single line: '4000 '
Test #109:
score: 0
Accepted
time: 3ms
memory: 29912kb
input:
2000 2000 499500 175 176 766233000 767232000 230 231 925 926 844 845 681318000 682317000 48951000 49950000 757 758 266 267 438561000 439560000 262737000 263736000 813 814 915084000 916083000 485514000 486513000 214785000 215784000 532467000 533466000 25 26 41958000 42957000 534 535 331 332 53 54 732...
output:
3999
result:
ok single line: '3999 '
Test #110:
score: 0
Accepted
time: 0ms
memory: 27920kb
input:
2000 2000 1 97918740 97918742 612788646 612788648 709014683 709014684 550596486 550596488 611820813 611820815 742133170 742133172 999593290 999593292 65695562 65695563 984598976 984598977 285428771 285428773 334881813 334881814 751309389 751309390 635034524 635034526 202056719 202056720 472216430 47...
output:
4000
result:
ok single line: '4000 '
Test #111:
score: 0
Accepted
time: 0ms
memory: 28068kb
input:
2000 2000 1000000000 762582513 763402869 685982674 685994777 607586653 607621748 725505868 725606928 287661547 287711487 961278566 961422544 282891861 282922769 388240582 388471546 305173664 305545845 17696180 17939334 267223086 267237726 251362344 251735629 957622587 957813570 321979347 321992100 7...
output:
2000
result:
ok single line: '2000 '
Test #112:
score: 0
Accepted
time: 0ms
memory: 28448kb
input:
2000 2000 1000000000 675 676 1250 1251 1565 1566 211 212 951 952 250 251 1975 1976 775 776 795 796 85 86 212 213 293 294 1970 1971 627 628 1945 1946 688 689 1050 1051 223 224 288 289 476 477 137 138 613 614 1400 1401 1087 1088 801 802 734 735 1112 1113 51 52 1127 1128 546 547 881 882 276 277 680 681...
output:
2000
result:
ok single line: '2000 '
Test #113:
score: 0
Accepted
time: 0ms
memory: 28144kb
input:
2000 2000 2000 683 684 170 171 1005 1006 1612 1613 330 331 280 281 1340 1341 1083 1084 355 356 1603 1604 1001 1002 873 874 1520 1521 1657 1658 1827 1828 1868 1869 655 656 1981 1982 184 185 900 901 1917 1918 1096 1097 956 957 987 988 536 537 921 922 317 318 869 870 1095 1096 1684 1685 762 763 1896 18...
output:
2000
result:
ok single line: '2000 '
Test #114:
score: -6
Wrong Answer
time: 3ms
memory: 28924kb
input:
89 1537 3 1761 1764 1885 1887 1489 1490 1523 1528 1491 1494 1204 1206 288 293 1433 1439 233 235 1007 1009 1630 1635 1297 1301 359 363 1559 1561 1918 1922 1160 1161 1374 1377 418 420 248 252 1826 1831 1051 1053 720 722 276 279 1516 1522 1638 1639 28 34 1392 1394 1867 1869 1030 1035 961 964 951 954 56...
output:
1537
result:
wrong answer 1st lines differ - expected: '1538', found: '1537 '
Subtask #4:
score: 0
Skipped
Dependency #1:
0%