QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#412635 | #4561. Catfish Farm | hmm789 | 9 | 540ms | 204692kb | C++14 | 4.0kb | 2024-05-16 16:51:53 | 2024-05-16 16:51:54 |
Judging History
answer
#include "fish.h"
#include <bits/stdc++.h>
using namespace std;
long long max_weights(int N, int M, vector<int> X, vector<int> Y, vector<int> W) {
#define int long long
#define INF 1000000000000000000
int ans = 0;
vector<int> dp0[N+1], dp1[N+1];
set<pair<int, int>> fish[N+1], pref[N+1];
set<pair<int, int>> s[2][N+1];
for(int i = 0; i < M; i++) {
fish[X[i]+1].insert({Y[i], W[i]});
}
for(int i = 0; i <= N; i++) {
if(fish[i].empty() || fish[i].begin()->first) fish[i].insert({0,0});
fish[i].insert({N,0});
int cnt = 0;
for(auto j : fish[i]) {
pref[i].insert({j.first, cnt});
cnt += j.second;
}
}
vector<pair<int, int>> fish2[N+1];
for(int i = 0; i <= N; i++) {
for(auto j : fish[i]) fish2[i].push_back(j);
}
dp0[0].push_back(0); dp0[0].push_back(-INF);
dp1[0].push_back(-INF); dp1[0].push_back(-INF);
s[0][0].insert({0, 0});
s[1][0].insert({0, 0});
s[1][0].insert({N, INF});
for(int i = 1; i <= N; i++) {
int cnt = 0;
for(auto j : fish[i]) {
for(int k = 0; k < 2; k++) {
if(k == 0) { // up
auto it = s[0][i-1].upper_bound({j.first+1, INF});
assert(it != s[0][i-1].begin());
it--;
auto tmp = pref[i-1].lower_bound({j.first, -INF});
assert(tmp != pref[i-1].end());
int a1 = it->second + tmp->second;
if(j.first == 0) {
a1 = max(a1, dp1[i-1][0]);
}
if(i == 1) a1 = 0;
dp0[i].push_back(a1);
if(i < N) {
// auto tmp = pref[i+1].lower_bound({j.first, -INF});
s[0][i].insert({j.first, max(dp0[i].back() - cnt, (s[0][i].size() ? s[0][i].rbegin()->second : -INF))});
// s[1][i].insert({j.first, -max(dp[k][i].back() + tmp->second, (s[1][i].size() ? s[1][i].begin()->second : -INF))});
}
ans = max(ans, dp0[i].back());
// cout << i << " " << j.first << " 0 " << dp0[i].back() << endl;
} else {
auto it = s[1][i-1].lower_bound({j.first, -INF});
assert(it != s[1][i-1].end());
// cout << "process " << i << " " << j.first << " " << k << endl;
// for(auto it2 : s[1][i-1]) cout << it2.first << " " << -it2.second << endl;
// cout << -it->second-cnt << " a" << endl;
dp1[i].push_back(-it->second - cnt);
// if(i < N) {
// auto tmp = pref[i+1].lower_bound({j.first, -INF});
// int toins = max(dp[k][i].back() + tmp->second, (s[1][i].size() ? s[1][i].begin()->second : -INF));
// s[1][i].insert({j.first, -toins});
// }
ans = max(ans, dp1[i].back());
// cout << i << " " << j.first << " 1 " << dp1[i].back() << endl;
}
// cout << i << " " << j.first << " " << k << " " << dp[k][i].back() << endl;
}
cnt += j.second;
}
assert(dp0[i].size() == fish2[i].size());
if(i < N) {
for(int j = fish2[i].size()-1; j >= 0; j--) {
auto tmp = pref[i+1].lower_bound({fish2[i][j].first, -INF});
// cout << "bbb " << i << " " << fish2[i][j].first << " " << tmp->first << " " << tmp->second << endl;
s[1][i].insert({fish2[i][j].first, -max(dp0[i][j] + tmp->second, (s[1][i].size() ? -s[1][i].begin()->second : -INF))});
int toins = max(dp1[i][j] + tmp->second, (s[1][i].size() ? -s[1][i].begin()->second : -INF));
s[1][i].insert({fish2[i][j].first, -toins});
}
}
}
return ans;
#undef int
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 3
Accepted
Test #1:
score: 3
Accepted
time: 156ms
memory: 105836kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 90000 80699 0 10792 55091480 0 36762 389250726 0 79267 706445371 0 76952 290301137 0 13444 69711795 0 68980 66221400 0 1695 703252611 0 36628 632571604 0 87676 264578012 0 79496 397448339 0 57929 447544332 0 35453 355374818 0 62449 686423696 0 45614 667165709...
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 40313272768926
result:
ok 3 lines
Test #2:
score: 0
Accepted
time: 172ms
memory: 120496kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 100000 100000 0 64777 995289349 0 71596 893436841 0 577 789941184 0 74238 421759180 0 93045 833843112 0 17349 236016162 0 70194 646518626 0 59769 662584325 0 45550 706340730 0 8007 454213805 0 5460 328535742 0 47262 672607739 0 91960 166922115 0 26216 5441740...
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 49915093555295
result:
ok 3 lines
Test #3:
score: 0
Accepted
time: 59ms
memory: 90516kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 100000 1 0 0 10082010
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 10082010
result:
ok 3 lines
Test #4:
score: 0
Accepted
time: 75ms
memory: 90552kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 100000 1 0 99999 19122012
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 19122012
result:
ok 3 lines
Test #5:
score: 0
Accepted
time: 540ms
memory: 200296kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 100000 300000 94880 38243 268662731 31482 11260 116303310 31482 29385 147398833 85804 78816 165663896 85804 50892 232441179 85804 52149 500231552 31482 15077 912836767 94880 13332 204098181 85804 4048 862989578 31482 94135 432330909 85804 30398 552396632 3702...
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 149814460735479
result:
ok 3 lines
Test #6:
score: 0
Accepted
time: 422ms
memory: 204692kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 100000 300000 66138 12864 1000000000 3750 4109 1000000000 42566 70555 1000000000 33020 72709 1000000000 57804 39219 1000000000 28208 65932 1000000000 13384 22179 1000000000 69976 69860 1000000000 82704 18635 1000000000 74094 31581 1000000000 95460 25871 10000...
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 300000000000000
result:
ok 3 lines
Subtask #2:
score: 6
Accepted
Test #7:
score: 6
Accepted
time: 0ms
memory: 4068kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 3 2 0 0 1 1 1 1
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 2
result:
ok 3 lines
Test #8:
score: 0
Accepted
time: 327ms
memory: 130916kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 90000 161862 0 56823 293232472 0 28967 124369573 1 8799 138712011 0 87115 743135614 1 56429 262092699 0 61318 597172732 0 39127 477101342 1 44938 277680401 1 79037 997527330 1 88113 13289754 0 29715 35249311 0 50637 709319782 1 20760 845594381 1 80662 6299890...
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 40604614618209
result:
ok 3 lines
Test #9:
score: 0
Accepted
time: 398ms
memory: 150924kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 100000 200000 1 94611 359691437 1 10475 699903763 0 39627 186380865 0 62696 78236869 1 59901 907339766 1 44433 317152581 1 19456 223720937 0 4711 30286661 1 55383 479944093 1 88731 45441550 0 10309 218389901 0 99887 732998760 0 26228 839617653 1 88110 3139856...
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 50032678213482
result:
ok 3 lines
Test #10:
score: 0
Accepted
time: 0ms
memory: 3800kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 2 2 0 0 2022 1 1 4044
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 4044
result:
ok 3 lines
Test #11:
score: 0
Accepted
time: 0ms
memory: 4100kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 2 2 0 0 5050 1 1 3030
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 5050
result:
ok 3 lines
Test #12:
score: 0
Accepted
time: 0ms
memory: 3804kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 2 2 0 1 7755 1 0 8866
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 8866
result:
ok 3 lines
Test #13:
score: 0
Accepted
time: 0ms
memory: 3800kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 2 2 0 1 5577 1 0 6688
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 6688
result:
ok 3 lines
Test #14:
score: 0
Accepted
time: 157ms
memory: 111172kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 90000 81027 1 78022 969143560 1 43863 459381900 1 71939 414875740 1 17215 578798304 1 25258 254524819 1 9995 615705212 1 64505 738411720 1 38635 386878913 1 7316 870476051 1 71502 200382005 1 36246 714307313 1 44983 342325106 1 21874 941526668 1 36342 6007424...
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 40374264367003
result:
ok 3 lines
Test #15:
score: 0
Accepted
time: 200ms
memory: 126644kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 100000 100000 1 36529 193038193 1 99864 100344763 1 13944 822577439 1 40064 839205065 1 58808 918924560 1 71401 933005771 1 7164 618108754 1 2647 168614484 1 10365 794367582 1 97808 340622080 1 91213 434850918 1 60653 980936719 1 73240 784575605 1 35253 40547...
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 49960364197170
result:
ok 3 lines
Test #16:
score: 0
Accepted
time: 147ms
memory: 105900kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 90000 80913 1 3706 192886977 1 19631 313364533 1 32993 77066425 1 8443 458629253 1 32638 693346888 1 8108 920399769 1 5350 151495079 0 88057 725558585 1 12024 800863120 0 68918 76370350 1 20226 359586795 1 24465 262652075 0 58272 739117823 0 55045 215833731 1...
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 20226650012153
result:
ok 3 lines
Test #17:
score: 0
Accepted
time: 183ms
memory: 117476kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 100000 90156 0 91197 836921194 1 63798 260105448 1 53815 111755630 1 70226 203200257 1 66759 409453738 0 87332 758078982 0 90617 270591594 0 98452 657417739 1 98629 581345911 0 61219 24784410 1 89476 542055643 0 97668 986623746 0 73432 71145999 0 62616 139020...
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 22608728426042
result:
ok 3 lines
Test #18:
score: 0
Accepted
time: 164ms
memory: 105856kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 90000 81112 1 57757 367003495 0 16362 106945721 0 6871 207957139 1 70309 854643957 0 28247 805419918 0 32912 78590212 1 48284 681710109 0 20135 131043827 0 24097 673839966 1 84181 983150465 0 3907 987578064 1 83139 210164973 1 64955 325494554 1 53503 23508977...
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 40504176225961
result:
ok 3 lines
Test #19:
score: 0
Accepted
time: 174ms
memory: 117424kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 100000 89949 0 39943 623230726 0 11845 603233917 1 92928 540049145 1 50843 6177158 0 4992 34607398 0 21287 72577489 0 30171 899177130 1 52292 686430101 1 55147 318305221 0 18847 626347664 0 49596 343869817 1 97844 204713750 0 34521 567154658 0 21230 215215931...
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 45076987066882
result:
ok 3 lines
Subtask #3:
score: 0
Wrong Answer
Test #20:
score: 9
Accepted
time: 68ms
memory: 90840kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 100000 1 0 0 10082010
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 10082010
result:
ok 3 lines
Test #21:
score: 0
Accepted
time: 73ms
memory: 90528kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 100000 1 99999 0 882019
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 882019
result:
ok 3 lines
Test #22:
score: -9
Wrong Answer
time: 97ms
memory: 83448kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 90000 53444 40538 0 933021958 22736 0 403565340 52395 0 535014365 46488 0 818102149 19082 0 825246110 7712 0 581240932 30019 0 143288209 16519 0 206714026 8855 0 737518859 44939 0 63482743 40524 0 963968043 2663 0 953447256 25511 0 762455895 10794 0 880225092...
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 20897672610412
result:
wrong answer 3rd lines differ - expected: '21261825233649', found: '20897672610412'
Subtask #4:
score: 0
Wrong Answer
Test #28:
score: 14
Accepted
time: 0ms
memory: 3824kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 4 3 2 2 1 0 0 1 1 1 1
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 3
result:
ok 3 lines
Test #29:
score: 0
Accepted
time: 0ms
memory: 3892kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 8 7 5 5 1 4 4 1 6 6 1 3 3 1 0 0 1 2 2 1 1 1 1
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 7
result:
ok 3 lines
Test #30:
score: 0
Accepted
time: 0ms
memory: 4068kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 3 2 0 0 1 1 1 1
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 2
result:
ok 3 lines
Test #31:
score: 0
Accepted
time: 0ms
memory: 4124kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 3 2 2 0 1 1 1 1
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 2
result:
ok 3 lines
Test #32:
score: -14
Wrong Answer
time: 0ms
memory: 4080kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 150 600 79 2 983288470 11 0 322623476 136 0 774411048 24 2 816724362 21 2 719492379 33 3 892309581 47 0 473707335 31 2 781573473 138 2 82986686 75 1 126753954 20 1 54988783 121 1 691958594 20 0 545299878 96 0 637112704 108 1 558914127 74 2 517404335 94 1 7420...
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 214837477243
result:
wrong answer 3rd lines differ - expected: '216624184325', found: '214837477243'
Subtask #5:
score: 0
Skipped
Dependency #4:
0%
Subtask #6:
score: 0
Skipped
Dependency #5:
0%
Subtask #7:
score: 0
Wrong Answer
Test #60:
score: 14
Accepted
time: 156ms
memory: 123640kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 100000 99999 31026 31026 1 42940 42940 1 69303 69303 1 90350 90350 1 77507 77507 1 87126 87126 1 17988 17988 1 5146 5146 1 63023 63023 1 27776 27776 1 6136 6136 1 82557 82557 1 24904 24904 1 21667 21667 1 67271 67271 1 80294 80294 1 81145 81145 1 47144 47144 ...
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 99999
result:
ok 3 lines
Test #61:
score: -14
Wrong Answer
time: 75ms
memory: 65560kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 50000 100000 43737 0 616909786 28149 1 83561192 31215 0 81425452 11831 1 127789871 33975 1 294422160 44409 1 920754334 44149 1 547214118 23078 0 749134931 39070 1 425147230 39398 1 49764337 49388 0 1922565 13827 0 24394607 45462 0 276157952 30584 0 435992379 ...
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 35956652967338
result:
wrong answer 3rd lines differ - expected: '36454348383152', found: '35956652967338'
Subtask #8:
score: 0
Skipped
Dependency #1:
100%
Accepted
Dependency #2:
100%
Accepted
Dependency #3:
0%