QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#525600 | #4561. Catfish Farm | green_gold_dog# | 0 | 51ms | 17916kb | C++20 | 3.2kb | 2024-08-20 19:04:26 | 2024-08-20 19:04:26 |
Judging History
answer
#include "fish.h"
#include <bits/stdc++.h>
using namespace std;
typedef int ll;
const long long INF = 1'000'000'000'000'000'000;
long long max_weights(ll n, ll m, vector<ll> x, vector<ll> y, vector<ll> w) {
vector<vector<pair<ll, ll>>> all(n);
for (ll i = 0; i < m; i++) {
all[x[i]].emplace_back(y[i], w[i]);
}
for (ll i = 0; i < n; i++) {
sort(all[i].begin(), all[i].end());
}
vector<long long> dpp(all[1].size() + 1, -INF);
vector<long long> dpnp(all[1].size() + 1, -INF);
vector<ll> to(all[1].size() + 1, -1);
ll now0 = 0, now1 = 0;
long long sum = 0;
dpp[0] = 0;
to[0] = 0;
while (now0 < all[0].size() || now1 < all[1].size()) {
ll nxt = min((now0 == all[0].size() ? n : all[0][now0].first),
(now1 == all[1].size() ? n : all[1][now1].first));
if (now0 < all[0].size() && nxt == all[0][now0].first) {
now0++;
}
if (now1 < all[1].size() && nxt == all[1][now1].first) {
sum += all[1][now1].second;
now1++;
}
dpp[now1] = max(dpp[now1], sum);
if (to[now1] == -1) {
to[now1] = now0;
}
}
dpnp = dpp;
all.push_back(vector<pair<ll, ll>>(0));
for (ll i = 1; i < n; i++) {
vector<long long> ndpp(all[i + 1].size() + 1, -INF);
vector<long long> ndpnp(all[i + 1].size() + 1, -INF);
vector<ll> nto(all[i + 1].size() + 1, -1);
nto[0] = 0;
long long s = 0;
for (ll ct = 0; ct <= all[i].size(); ct++) {
ll nowi = 0, nowip = 0, nowim = 0;
long long nans = 0, s1 = s, s2 = 0;
ndpp[0] = max(ndpp[0], dpp[ct]);
ndpp[0] = max(ndpp[0], dpnp[ct]);
ndpnp[0] = max(ndpnp[0], dpp[ct] - s1);
ndpnp[0] = max(ndpnp[0], dpnp[ct] - s1);
while (nowi < all[i].size() || nowip < all[i + 1].size() || nowim < all[i - 1].size()) {
ll nxt = min({(nowi == all[i].size() ? n : all[i][nowi].first),
(nowip == all[i + 1].size() ? n : all[i + 1][nowip].first),
(nowim == all[i - 1].size() ? n : all[i - 1][nowim].first)});
if (nowi < all[i].size() && nxt == all[i][nowi].first) {
if (nowi < ct) {
nans -= all[i][nowi].second;
s1 -= all[i][nowi].second;
}
nowi++;
}
if (nowip < all[i + 1].size() && nxt == all[i + 1][nowip].first) {
nans += all[i + 1][nowip].second;
nowip++;
}
if (nowim < all[i - 1].size() && nxt == all[i - 1][nowim].first) {
if (to[ct] <= nowim) {
nans += all[i - 1][nowim].second;
s2 += all[i - 1][nowim].second;
}
nowim++;
}
ndpp[nowip] = max(ndpp[nowip], nans + dpp[ct] - s2);
ndpp[nowip] = max(ndpp[nowip], nans + dpnp[ct]);
ndpnp[nowip] = max(ndpnp[nowip], nans + dpp[ct] - s2 - s1);
ndpnp[nowip] = max(ndpnp[nowip], nans + dpnp[ct] - s1);
if (nto[nowip] == -1) {
nto[nowip] = nowi;
}
}
if (ct < all[i].size()) {
s += all[i][ct].second;
}
}
dpp = ndpp;
dpnp = ndpnp;
to = nto;
}
long long ans = 0;
for (auto i : dpp) {
ans = max(ans, i);
}
for (auto i : dpnp) {
ans = max(ans, i);
}
return ans;
}
#ifdef LOCAL
int main() {
int N, M;
assert(2 == scanf("%d %d", &N, &M));
std::vector<int> X(M), Y(M), W(M);
for (int i = 0; i < M; ++i) {
assert(3 == scanf("%d %d %d", &X[i], &Y[i], &W[i]));
}
long long result = max_weights(N, M, X, Y, W);
printf("%lld\n", result);
return 0;
}
#endif
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 0
Time Limit Exceeded
Test #1:
score: 3
Accepted
time: 22ms
memory: 11872kb
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: 3
Accepted
time: 19ms
memory: 13004kb
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: 3
Accepted
time: 3ms
memory: 8900kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 100000 1 0 0 10082010
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 10082010
result:
ok 3 lines
Test #4:
score: 3
Accepted
time: 3ms
memory: 8396kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 100000 1 0 99999 19122012
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 19122012
result:
ok 3 lines
Test #5:
score: 0
Time Limit Exceeded
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:
Unauthorized output
result:
Subtask #2:
score: 0
Time Limit Exceeded
Test #7:
score: 6
Accepted
time: 0ms
memory: 3776kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 3 2 0 0 1 1 1 1
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 2
result:
ok 3 lines
Test #8:
score: 0
Time Limit Exceeded
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:
Unauthorized output
result:
Subtask #3:
score: 0
Wrong Answer
Test #20:
score: 9
Accepted
time: 7ms
memory: 8564kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 100000 1 0 0 10082010
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 10082010
result:
ok 3 lines
Test #21:
score: 9
Accepted
time: 7ms
memory: 7836kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 100000 1 99999 0 882019
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 882019
result:
ok 3 lines
Test #22:
score: 0
Wrong Answer
time: 16ms
memory: 11536kb
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 21669462288102
result:
wrong answer 3rd lines differ - expected: '21261825233649', found: '21669462288102'
Subtask #4:
score: 0
Wrong Answer
Test #28:
score: 14
Accepted
time: 0ms
memory: 3780kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 4 3 2 2 1 0 0 1 1 1 1
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 3
result:
ok 3 lines
Test #29:
score: 14
Accepted
time: 0ms
memory: 3728kb
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: 14
Accepted
time: 0ms
memory: 3776kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 3 2 0 0 1 1 1 1
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 2
result:
ok 3 lines
Test #31:
score: 14
Accepted
time: 0ms
memory: 3804kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 3 2 2 0 1 1 1 1
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 2
result:
ok 3 lines
Test #32:
score: 14
Accepted
time: 1ms
memory: 3828kb
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 216624184325
result:
ok 3 lines
Test #33:
score: 14
Accepted
time: 0ms
memory: 3908kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 300 2400 173 2 605122964 182 1 915124935 228 4 536218616 188 1 277682068 88 0 326709697 177 2 623496380 297 7 863327652 140 2 138423292 285 1 13632981 41 2 75649420 224 6 197471342 251 5 439508855 167 3 861142148 56 0 344701471 250 2 995027405 95 7 843229073 ...
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 799839985182
result:
ok 3 lines
Test #34:
score: 0
Wrong Answer
time: 1ms
memory: 4064kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 150 800 20 3 849357409 45 6 845379514 12 6 128280695 6 6 390372289 62 6 517437842 137 7 65548858 98 6 844399946 23 1 682947100 51 7 833340178 81 3 483754945 38 0 861597575 74 7 495104215 125 0 478378570 99 3 341278360 87 3 306019744 137 5 794376023 61 4 74825...
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 279142493945
result:
wrong answer 3rd lines differ - expected: '278622587073', found: '279142493945'
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: 30ms
memory: 14156kb
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
Accepted
time: 27ms
memory: 9560kb
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 36454348383152
result:
ok 3 lines
Test #62:
score: 14
Accepted
time: 51ms
memory: 17916kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 100000 200000 74413 0 331848521 65625 1 270985578 74834 1 254858924 64748 0 225446772 49477 1 805769691 51151 0 936768358 3414 0 489367009 16978 1 568800724 73971 1 362063327 69520 0 167769953 74767 0 685485032 98265 0 800000672 37113 0 607119114 76712 0 7360...
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 72889508713304
result:
ok 3 lines
Test #63:
score: 14
Accepted
time: 3ms
memory: 9084kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 100000 1 99999 0 882019
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 882019
result:
ok 3 lines
Test #64:
score: 14
Accepted
time: 7ms
memory: 8636kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 100000 1 99999 99999 1062016
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 1062016
result:
ok 3 lines
Test #65:
score: 0
Wrong Answer
time: 34ms
memory: 13976kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 100000 99714 95877 95661 904971232 48936 51182 87613544 99510 69524 166560840 69063 54711 527961593 44663 66079 840368080 48858 31915 855482971 48792 25347 551893652 3707 58511 133271545 54098 19896 960800491 99183 25598 251063376 32001 95465 62448024 61669 1...
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 48160853997328
result:
wrong answer 3rd lines differ - expected: '45561826463480', found: '48160853997328'
Subtask #8:
score: 0
Skipped
Dependency #1:
0%