QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#561966 | #3563. Treatment Project | seungni | 9 | 67ms | 12880kb | C++17 | 3.6kb | 2024-09-13 13:40:19 | 2024-09-13 13:40:20 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pii = pair<ll, ll>;
const ll inf = 0x3f3f3f3f3f3f3f3fLL;
ll N, M, sz;
pair<ll, pair<pii, ll>> arr[100005];
ll seg[200505 * 2];
void update(int pos, ll v) {
pos += sz;
seg[pos] = min(seg[pos], v);
for (; pos > 0; pos >>= 1) seg[pos >> 1] = min(seg[pos], seg[pos ^ 1]);
return;
}
ll query(int l, int r) {
r++;
ll ret = inf;
for (l += sz, r += sz; l < r; l >>= 1, r >>= 1) {
if (l & 1) ret = min(ret, seg[l++]);
if (r & 1) ret = min(ret, seg[--r]);
}
return ret;
}
void subtask_1() {
vector<ll> v;
v.push_back(0);
v.push_back(1), v.push_back(N);
for (int i = 0; i < M; i++) {
v.push_back(arr[i].second.first.first);
v.push_back(arr[i].second.first.second);
}
sort(v.begin(), v.end());
v.erase(unique(v.begin(), v.end()), v.end());
sz = v.size();
sort(arr, arr + M, [&](pair<ll, pair<pii, ll>> a, pair<ll, pair<pii, ll>> b) {
return a.second.first.second < b.second.first.second;
});
for (int i = 0; i < M; i++) {
ll L = arr[i].second.first.first, R = arr[i].second.first.second;
L = lower_bound(v.begin(), v.end(), L) - v.begin();
R = lower_bound(v.begin(), v.end(), R) - v.begin();
arr[i].second.first = {L, R};
}
vector<ll> dp(sz + 5, inf);
memset(seg, 0x3f, sizeof(seg));
dp[0] = 0;
update(0, dp[0]);
for (int i = 0; i < M; i++) {
ll l = arr[i].second.first.first, r = arr[i].second.first.second, c = arr[i].second.second;
ll idx = lower_bound(v.begin(), v.end(), v[l] - 1) - v.begin();
dp[r] = min(dp[r], query(idx, r) + c);
update(r, dp[r]);
}
int idx = lower_bound(v.begin(), v.end(), N) - v.begin();
if (dp[idx] == inf) cout << -1;
else cout << dp[idx];
return;
}
void subtask_2() {
ll ans = inf;
sort(arr, arr + M);
for (int i = 0; i < (1 << M); i++) {
vector<int> v;
ll cost = 0;
for (int j = 0; j < M; j++) {
if (i & (1 << j)) v.push_back(j), cost += arr[j].second.second;
}
vector<pair<pii, ll>> now;
now.push_back({{1, N}, 0});
for (int j: v) {
vector<pair<pii, ll>> nxt;
ll T = arr[j].first, L = arr[j].second.first.first, R = arr[j].second.first.second;
for (auto &[range, t]: now) {
ll l = range.first, r = range.second;
l -= T - t, l = max(l, 1LL);
r += T - t, r = min(r, N);
if (l < L) nxt.push_back({{l, min(r, L - 1)}, T});
if (r > R) nxt.push_back({{max(l, R + 1), r}, T});
}
swap(nxt, now);
}
if (now.empty()) ans = min(ans, cost);
}
if (ans == inf) cout << -1;
else cout << ans;
return;
}
void solve() {
cin >> N >> M;
int sub_task1 = 1, sub_task2 = (M <= 16);
for (int i = 0; i < M; i++) {
ll T, L, R, C;
cin >> T >> L >> R >> C;
if (T != 1) sub_task1 = 0;
arr[i] = {T, {{L, R}, C}};
}
if (sub_task1) {
subtask_1();
return;
}
if (sub_task2) {
subtask_2();
return;
}
return;
}
int main(void) {
ios::sync_with_stdio(false);
cin.tie(0);
int t = 1;
//cin >> t;
while (t--) solve();
return 0;
}
详细
Subtask #1:
score: 4
Accepted
Test #1:
score: 4
Accepted
time: 59ms
memory: 12664kb
input:
1000000000 100000 1 811370001 811380000 1000000000 1 413190001 413200000 1000000000 1 462480001 462490000 1000000000 1 384860001 384870000 1000000000 1 543220001 543230000 1000000000 1 766300001 766310000 1000000000 1 348890001 348900000 1000000000 1 996350001 996360000 1000000000 1 302700001 302710...
output:
100000000000000
result:
ok single line: '100000000000000'
Test #2:
score: 4
Accepted
time: 60ms
memory: 12724kb
input:
1000000000 100000 1 949530001 949540000 1000000000 1 739970001 739980000 1000000000 1 199740001 199750000 1000000000 1 481170001 481180000 1000000000 1 691390001 691400000 1000000000 1 694040001 694050000 1000000000 1 229990001 230000000 1000000000 1 306470001 306480000 1000000000 1 293790001 293800...
output:
-1
result:
ok single line: '-1'
Test #3:
score: 4
Accepted
time: 52ms
memory: 11412kb
input:
1000000000 100000 1 999950001 999976550 1550 1 22208 50000 2793 1 18436 50000 6565 1 999999902 1000000000 99 1 1 1959 1959 1 999987171 1000000000 12830 1 13195 50000 11806 1 999950001 999987417 12417 1 999950001 999996988 21988 1 999950001 999994504 19504 1 999950001 999987988 12988 1 999950001 9999...
output:
49999
result:
ok single line: '49999'
Test #4:
score: 4
Accepted
time: 48ms
memory: 11384kb
input:
1000000000 100000 1 18068 50000 6933 1 999950001 999987700 12700 1 1 3107 3107 1 18416 50000 6585 1 999981021 1000000000 18980 1 999989599 1000000000 10402 1 999981949 1000000000 18052 1 1 23318 23318 1 999950001 999977889 2889 1 999989735 1000000000 10266 1 999950001 999977002 2002 1 999977230 1000...
output:
49998
result:
ok single line: '49998'
Test #5:
score: 4
Accepted
time: 30ms
memory: 11324kb
input:
1000000000 100000 1 1 10000000 145793232 1 10000001 20000000 480576404 1 20000001 30000000 579478535 1 30000001 40000000 972724773 1 40000001 50000000 195930803 1 50000001 60000000 42390962 1 60000001 70000000 280311272 1 70000001 80000000 265006415 1 80000001 90000000 646778234 1 90000001 100000000...
output:
103256696
result:
ok single line: '103256696'
Test #6:
score: 4
Accepted
time: 32ms
memory: 11184kb
input:
1000000000 100000 1 1 1000000 84881992 1 1000001 2000000 96486607 1 2000001 3000000 87474151 1 3000001 4000000 308931873 1 4000001 5000000 752155772 1 5000001 6000000 71781449 1 6000001 7000000 574465725 1 7000001 8000000 257711828 1 8000001 9000000 976891771 1 9000001 10000000 737457473 1 10000001 ...
output:
10202525555
result:
ok single line: '10202525555'
Test #7:
score: 4
Accepted
time: 39ms
memory: 11052kb
input:
1000000000 100000 1 1 100000 691341803 1 100001 200000 909165531 1 200001 300000 998253633 1 300001 400000 186389967 1 400001 500000 182412146 1 500001 600000 620222523 1 600001 700000 290853217 1 700001 800000 77492636 1 800001 900000 595119065 1 900001 1000000 632152167 1 1000001 1100000 751499859...
output:
911635058003
result:
ok single line: '911635058003'
Test #8:
score: 4
Accepted
time: 30ms
memory: 11192kb
input:
1000000000 100000 1 1 10000000 215217992 1 10000002 20000001 257813843 1 20000003 30000002 409648986 1 30000004 40000003 74292373 1 40000005 50000004 346679152 1 50000006 60000005 168032896 1 60000007 70000006 978832613 1 70000008 80000007 972209778 1 80000009 90000008 504905160 1 90000010 100000009...
output:
-1
result:
ok single line: '-1'
Test #9:
score: 4
Accepted
time: 36ms
memory: 11180kb
input:
1000000000 100000 1 1 1000000 339975845 1 1000002 2000001 924553880 1 2000003 3000002 221514681 1 3000004 4000003 814700766 1 4000005 5000004 606897055 1 5000006 6000005 542007635 1 6000007 7000006 833481194 1 7000008 8000007 36174314 1 8000009 9000008 677730964 1 9000010 10000009 328173604 1 100000...
output:
-1
result:
ok single line: '-1'
Test #10:
score: 4
Accepted
time: 39ms
memory: 11140kb
input:
1000000000 100000 1 1 100000 546836013 1 100002 200001 79898605 1 200003 300002 355510933 1 300004 400003 613504881 1 400005 500004 608643061 1 500006 600005 346108380 1 600007 700006 94237328 1 700008 800007 615885675 1 800009 900008 144998423 1 900010 1000009 452673262 1 1000011 1100010 602954095 ...
output:
-1
result:
ok single line: '-1'
Test #11:
score: 4
Accepted
time: 64ms
memory: 12196kb
input:
1000000000 100000 1 303811818 829165054 198988627 1 238315172 721819143 141698606 1 735738067 1000000000 894452247 1 361644024 743722594 115600786 1 833044862 1000000000 829396821 1 978649195 1000000000 121635824 1 656681592 1000000000 273711306 1 496003357 1000000000 145092871 1 545905300 100000000...
output:
685378438
result:
ok single line: '685378438'
Test #12:
score: 4
Accepted
time: 64ms
memory: 12368kb
input:
1000000000 100000 1 943316546 1000000000 216982980 1 19370137 444718109 622200963 1 244137695 646936606 337228786 1 721168313 1000000000 871779123 1 692826909 1000000000 475559515 1 172759072 444193083 393558194 1 902352909 1000000000 592749518 1 784704501 1000000000 46903352 1 476674919 820551472 7...
output:
8545005
result:
ok single line: '8545005'
Test #13:
score: 4
Accepted
time: 67ms
memory: 12508kb
input:
1000000000 100000 1 299540356 301014664 918798031 1 47063831 49122175 319472906 1 643593754 649240559 786327287 1 911355484 912220834 661864920 1 421773565 425654542 547070484 1 121293018 127328807 600494728 1 124896424 134073887 732623470 1 847918166 848422995 357034382 1 202634733 207639979 227135...
output:
640648629
result:
ok single line: '640648629'
Test #14:
score: 4
Accepted
time: 60ms
memory: 12596kb
input:
1000000000 100000 1 292785668 302238617 735249885 1 330242772 339770867 834706107 1 389294923 391540047 458089101 1 450680389 453059619 143967320 1 454972829 463399723 466799715 1 753057870 755431216 100716135 1 504170097 513605690 434206234 1 103062686 108678675 31594524 1 223332793 230476444 90289...
output:
566131778
result:
ok single line: '566131778'
Test #15:
score: 4
Accepted
time: 63ms
memory: 12880kb
input:
1000000000 100000 1 190249900 190686929 373454997 1 552611497 552775726 389849882 1 982934744 983745458 824523947 1 864133080 864437303 440840591 1 981480585 981574825 416048337 1 511607007 511657019 77913748 1 821534632 821810240 544332427 1 296802128 297062333 660771431 1 208063734 208493818 19912...
output:
60507750537
result:
ok single line: '60507750537'
Test #16:
score: 4
Accepted
time: 59ms
memory: 12836kb
input:
1000000000 100000 1 275121708 275841780 671595176 1 466556774 466575868 484670561 1 760216631 761110424 380331015 1 131452988 132345955 12662694 1 977640557 977642896 579869191 1 935760533 936394211 785322933 1 417528094 418262446 872043777 1 368926107 369906582 303043171 1 788412117 789358347 37981...
output:
60944102933
result:
ok single line: '60944102933'
Test #17:
score: 4
Accepted
time: 53ms
memory: 12640kb
input:
1000000000 100000 1 83134378 83939878 8 1 592189499 592792264 8 1 259250315 260076619 3 1 509562779 509615501 4 1 457433813 457988991 1 1 214916666 215313641 3 1 995959398 996917301 4 1 621550403 622406127 9 1 675067804 675700091 10 1 820894516 821281795 6 1 166308237 166609937 9 1 242380815 2431201...
output:
1663
result:
ok single line: '1663'
Test #18:
score: 4
Accepted
time: 66ms
memory: 12412kb
input:
1000000000 100000 1 943522993 1000000000 9 1 638122273 1000000000 5 1 285857010 626474643 4 1 356193761 483694746 3 1 257614831 796690153 1 1 575897497 1000000000 1 1 266218267 476247529 8 1 383225791 1000000000 2 1 561953671 1000000000 10 1 873960336 1000000000 9 1 33852012 588412399 3 1 496409891 ...
output:
4
result:
ok single line: '4'
Subtask #2:
score: 5
Accepted
Test #19:
score: 5
Accepted
time: 1ms
memory: 5600kb
input:
1 1 1000000000 1 1 1000000000
output:
1000000000
result:
ok single line: '1000000000'
Test #20:
score: 5
Accepted
time: 23ms
memory: 5636kb
input:
1000000000 16 6 2 2 1 4 999999997 999999999 4 2 999999997 1000000000 2 3 1 4 3 3 999999997 1000000000 3 5 999999998 999999999 3 6 999999999 999999999 1 2 1 4 2 6 3 999999998 1 999999987 1 1000000000 10 999999986 1 1000000000 10 999999985 1 1000000000 10 4 2 4 4 5 2 3 3 1 999999997 1000000000 1 1 1 4 1
output:
9
result:
ok single line: '9'
Test #21:
score: 5
Accepted
time: 19ms
memory: 5636kb
input:
1000000000 16 5 999999998 999999999 2 999999985 1 1000000000 8 5 2 3 3 2 1 4 2 4 2 4 3 6 3 999999998 1 1 999999997 1000000000 1 6 999999999 999999999 2 6 2 2 2 2 999999997 1000000000 2 3 999999997 1000000000 3 4 999999997 999999999 4 999999987 1 1000000000 10 1 1 4 1 999999986 1 1000000000 10 3 1 4 3
output:
8
result:
ok single line: '8'
Test #22:
score: 5
Accepted
time: 41ms
memory: 5692kb
input:
1000000000 16 200000001 3 100000003 1000000000 1 1 100000001 1000000000 400000001 5 100000005 1000000000 1 900000000 1000000000 1000000000 500000001 899999995 999999995 1000000000 500000001 6 100000006 1000000000 600000001 899999994 999999994 1000000000 700000001 500000001 999999993 1000000000 40000...
output:
16000000000
result:
ok single line: '16000000000'
Test #23:
score: 5
Accepted
time: 43ms
memory: 5644kb
input:
1000000000 16 100000001 2 100000001 1000000000 500000001 6 100000006 1000000000 300000001 899999997 999999997 1000000000 700000001 8 500000000 1000000000 400000001 899999996 999999996 1000000000 1 1 100000001 1000000000 100000001 899999999 999999999 1000000000 200000001 3 100000003 1000000000 600000...
output:
-1
result:
ok single line: '-1'
Test #24:
score: 5
Accepted
time: 18ms
memory: 5664kb
input:
1000000000 16 308520246 1 500000000 359755556 295655247 487135002 987135001 271593000 314734892 968055357 1000000000 312883746 410091097 1 500000000 101547816 395764591 485673495 985673494 629609944 392316197 982225101 1000000000 401923300 978742397 1 500000000 868693198 952345206 473602810 97360280...
output:
944232302
result:
ok single line: '944232302'
Test #25:
score: 5
Accepted
time: 34ms
memory: 5628kb
input:
1000000000 16 672706728 1 200000000 497504405 685823406 186883323 386883322 774982231 674014449 375074366 575074365 773000447 654139023 555198940 755198939 790219287 656808645 752529318 952529317 476720223 644457233 940177906 1000000000 664282982 959379929 1 200000000 786969801 978273081 181106849 3...
output:
3404859829
result:
ok single line: '3404859829'
Test #26:
score: 5
Accepted
time: 45ms
memory: 5892kb
input:
1000000000 16 540954071 1 10000000 710172197 540536129 9582059 19582058 536145072 539536499 18582429 28582428 814753471 539185649 28231579 38231578 620882859 538350203 37396133 47396132 386658616 539249992 46496344 56496343 870617207 539643763 56102573 66102572 904970863 539573301 66032111 76032110 ...
output:
-1
result:
ok single line: '-1'
Test #27:
score: 5
Accepted
time: 24ms
memory: 5636kb
input:
1000000000 16 491674089 1 500000000 336648490 539994271 451679820 951679819 469043391 517647080 929332630 1000000000 292857884 281124238 1 500000000 712418479 328708776 452415464 952415463 296084141 356807854 924316387 1000000000 648894560 660900926 1 500000000 384729282 657610483 496709559 99670955...
output:
1886981327
result:
ok single line: '1886981327'
Test #28:
score: 5
Accepted
time: 43ms
memory: 5928kb
input:
1000000000 16 838698042 1 200000000 534015959 858199116 180498928 380498927 504484211 839907744 362207557 562207556 898913833 847053449 555061853 755061852 910907433 860497726 741617577 941617576 171206653 867040700 935074604 1000000000 676192995 208351725 1 200000000 506499124 228113409 180238318 3...
output:
-1
result:
ok single line: '-1'
Test #29:
score: 5
Accepted
time: 52ms
memory: 5696kb
input:
1000000000 16 205846077 1 10000000 873895887 204858740 9012665 19012664 147782763 205674932 18196474 28196473 776792335 205398591 27920134 37920133 18876276 205275591 37797135 47797134 113374737 206002463 47070264 57070263 216570418 205456894 56524696 66524695 508488400 205480940 66500651 76500650 8...
output:
-1
result:
ok single line: '-1'
Test #30:
score: 5
Accepted
time: 33ms
memory: 5660kb
input:
1000000000 16 521719332 635760132 934417526 529743702 1305373 525299245 1000000000 461248301 101171661 237013303 513442486 519226146 461851512 227481783 939390202 642026488 835321835 380826656 1000000000 864581393 774758954 598049287 1000000000 885982602 476039441 1 226851442 609871787 583465229 392...
output:
1071400261
result:
ok single line: '1071400261'
Test #31:
score: 5
Accepted
time: 21ms
memory: 5640kb
input:
1000000000 16 206783888 1 794031651 473137665 654757441 181608545 482154540 814079812 199299059 172003379 589586500 977531496 445754685 647415391 1000000000 724703815 30495945 650569357 1000000000 700408250 370373056 15814055 569148871 97147596 592280811 734763422 1000000000 99025581 523660734 98269...
output:
926766012
result:
ok single line: '926766012'
Test #32:
score: 5
Accepted
time: 22ms
memory: 5584kb
input:
1000000000 16 53129883 43438614 576626916 420027795 595715370 217546351 904088926 117669374 501698138 394506898 1000000000 501348919 16794543 467166832 1000000000 430252715 66170783 44326969 740935026 307666284 100432574 105218928 612739989 964426597 66832107 59260547 587707946 695056263 71803431 40...
output:
1084276058
result:
ok single line: '1084276058'
Test #33:
score: 5
Accepted
time: 24ms
memory: 5664kb
input:
20 16 11 11 20 614196799 18 11 20 106915074 9 20 20 806710174 5 19 20 334176271 12 11 16 63935383 8 1 3 493767973 13 17 20 937825697 16 11 20 599156261 4 6 20 162982558 17 4 20 156235818 12 8 14 967709279 19 11 20 880182565 6 13 18 842507131 19 17 19 30861075 17 1 10 659432307 9 5 15 689432411
output:
815668125
result:
ok single line: '815668125'
Test #34:
score: 5
Accepted
time: 33ms
memory: 5636kb
input:
20 16 14 1 5 36860000 17 3 8 100853922 6 14 16 960259663 20 2 9 15251465 8 17 18 411813150 16 18 20 957718939 17 1 8 346305175 2 20 20 759532534 3 16 20 708800301 12 19 20 571134941 5 4 11 532379718 6 16 20 124294312 20 12 20 89050063 16 13 19 890357065 20 13 20 289577457 15 20 20 126485192
output:
-1
result:
ok single line: '-1'
Test #35:
score: 5
Accepted
time: 41ms
memory: 5624kb
input:
20 16 5 17 20 883046038 2 13 15 646298453 1 16 19 673045363 5 8 9 429038258 5 4 7 675052934 3 9 11 556330641 4 7 11 709314017 2 18 20 666670231 1 3 3 408856853 2 2 6 619870732 2 12 14 948839865 2 10 13 131394079 2 2 2 70988341 3 1 3 17741436 5 14 14 901591370 2 17 19 223748049
output:
-1
result:
ok single line: '-1'
Test #36:
score: 5
Accepted
time: 23ms
memory: 5584kb
input:
20 16 8 17 19 6 11 1 12 19 20 15 20 18 16 13 20 13 12 6 16 9 14 2 19 3 5 10 13 16 7 18 18 20 5 11 20 11 11 7 20 11 13 18 20 15 9 7 16 3 13 1 4 11 5 12 20 2 11 13 16 20 11 14 19 7
output:
19
result:
ok single line: '19'
Test #37:
score: 5
Accepted
time: 38ms
memory: 5732kb
input:
20 16 4 8 12 1 5 3 3 3 3 1 3 2 5 1 3 2 5 20 20 2 5 8 8 2 4 7 11 2 1 8 9 4 1 8 10 5 5 20 20 3 4 12 16 4 5 6 7 3 5 8 8 3 5 15 18 3 1 19 20 5 1 2 2 1
output:
-1
result:
ok single line: '-1'
Subtask #3:
score: 0
Wrong Answer
Dependency #2:
100%
Accepted
Test #38:
score: 0
Wrong Answer
time: 1ms
memory: 5588kb
input:
1000000000 5000 2157 2 343 342 684 999998751 1000000000 684 1022 999998751 1000000000 1022 991 999998751 1000000000 991 2291 999999792 999999999 208 47 1 1250 47 402 999998751 1000000000 402 1688 999999189 999999999 811 987 1 1250 987 1606 999999107 999999999 893 2304 999999805 999999999 195 685 999...
output:
result:
wrong answer 1st lines differ - expected: '2499', found: ''
Subtask #4:
score: 0
Skipped
Dependency #1:
100%
Accepted
Dependency #2:
100%
Accepted
Dependency #3:
0%