QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#405236 | #8024. Fountains | Tomato_Fish# | AC ✓ | 78ms | 55616kb | C++14 | 1.7kb | 2024-05-05 14:41:24 | 2024-05-05 14:41:24 |
Judging History
answer
#include<bits/stdc++.h>
#define pi (3.14159265358979323846)
using namespace std;
typedef long double db;
typedef long long ll;
const int mod=998244353;
const int N=1e6+100;
const db eps=1e-12;
int mi(int x,int t){
int d=1;
while(t){
if(t%2) d=(ll)d*x%mod;
x=(ll)x*x%mod;t/=2;
}
return d;
}
int ni(int x) {return mi(x,mod-2);}
int a[15];ll qz[15];
struct node{
int l,r;ll c;
}g[110];
bool cmp(node n1,node n2) {return (n1.c>n2.c);}
ll sta[46][110000][2];int tot[46];
unordered_map<ll,int> B[46];
int main()
{
int n;scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
qz[0]=0;for(int i=1;i<=n;i++) qz[i]=qz[i-1]+a[i];
int cnt=0;
for(int i=1;i<=n;i++)
for(int j=i;j<=n;j++){
g[++cnt].l=i;g[cnt].r=j;
g[cnt].c=qz[j]-qz[i-1];
}
sort(g+1,g+cnt+1,cmp);
sta[0][1][0]=sta[0][1][1]=0;
tot[0]=1;
for(int i=1;i<=cnt;i++){
bitset<45> P=0;
for(int j=1;j<=cnt;j++)
if(g[j].l<=g[i].l&&g[j].r>=g[i].r){
P.set(j-1);
}
for(int k=i-1;k>=0;k--){
for(int j=1;j<=tot[k];j++){
bitset<45> t=(P&((bitset<45>)sta[k][j][0]));
ll t2=(P.to_ullong()|sta[k][j][0]);
int tt=g[i].l*(n-g[i].r+1)-t.count();
int id=B[k+1][t2];
if(id==0){
id=B[k+1][t2]=++tot[k+1];
sta[k+1][tot[k+1]][0]=t2,sta[k+1][tot[k+1]][1]=0;
}
sta[k+1][id][0]=t2;sta[k+1][id][1]=max(sta[k+1][id][1],g[i].c*tt+sta[k][j][1]);
}
}
// for(int k=0;k<=i;k++) printf("%d ",tot[k]);
// printf("\n");
}
ll Ans=0;
for(int i=1;i<=cnt;i++) Ans+=g[i].c;
for(int i=1;i<=cnt;i++){
ll mx=0;
for(int j=1;j<=tot[i];j++) mx=max(mx,sta[i][j][1]);
printf("%lld\n",Ans-mx);
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1ms
memory: 6064kb
input:
1 1
output:
0
result:
ok 1 number(s): "0"
Test #2:
score: 0
Accepted
time: 1ms
memory: 7844kb
input:
2 13 24
output:
26 13 0
result:
ok 3 number(s): "26 13 0"
Test #3:
score: 0
Accepted
time: 2ms
memory: 14044kb
input:
3 6 4 7
output:
33 21 12 8 4 0
result:
ok 6 numbers
Test #4:
score: 0
Accepted
time: 1ms
memory: 6064kb
input:
1 1000000000
output:
0
result:
ok 1 number(s): "0"
Test #5:
score: 0
Accepted
time: 2ms
memory: 14244kb
input:
3 1000000000 1000000000 1000000000
output:
6000000000 4000000000 3000000000 2000000000 1000000000 0
result:
ok 6 numbers
Test #6:
score: 0
Accepted
time: 0ms
memory: 20388kb
input:
4 91 24 13 45
output:
402 267 185 137 89 52 39 26 13 0
result:
ok 10 numbers
Test #7:
score: 0
Accepted
time: 0ms
memory: 22160kb
input:
4 41 38 27 23
output:
386 279 220 168 130 92 69 46 23 0
result:
ok 10 numbers
Test #8:
score: 0
Accepted
time: 0ms
memory: 20092kb
input:
4 96 79 21 85
output:
799 544 386 276 180 84 63 42 21 0
result:
ok 10 numbers
Test #9:
score: 0
Accepted
time: 0ms
memory: 20116kb
input:
4 64 14 13 21
output:
246 178 124 96 74 52 39 26 13 0
result:
ok 10 numbers
Test #10:
score: 0
Accepted
time: 0ms
memory: 20388kb
input:
4 37 39 74 87
output:
691 465 374 296 222 148 111 74 37 0
result:
ok 10 numbers
Test #11:
score: 0
Accepted
time: 0ms
memory: 22296kb
input:
4 13 81 35 93
output:
634 378 192 122 87 52 39 26 13 0
result:
ok 10 numbers
Test #12:
score: 0
Accepted
time: 0ms
memory: 22456kb
input:
4 99 79 63 38
output:
832 582 436 310 231 152 114 76 38 0
result:
ok 10 numbers
Test #13:
score: 0
Accepted
time: 0ms
memory: 28312kb
input:
5 960291817 979089901 937338124 900872248 921429110
output:
21385776793 16901343929 13964074226 11201545674 9358687454 8338338015 7378046198 6420151212 5462256226 4504361240 3603488992 2702616744 1801744496 900872248 0
result:
ok 15 numbers
Test #14:
score: 0
Accepted
time: 0ms
memory: 28548kb
input:
6 993702683 956722344 945667651 937295260 920868105 928898923
output:
35868957528 28436304068 22822642178 20706312438 17869309485 15101698227 13229480240 12173997672 11217275328 10260552984 9306512942 8361186864 7415860786 6470534708 5525208630 4604340525 3683472420 2762604315 1841736210 920868105 0
result:
ok 21 numbers
Test #15:
score: 0
Accepted
time: 3ms
memory: 27644kb
input:
7 945176955 913718431 912448136 950992979 912981052 948181396 946164955
output:
53191717275 44501626672 37196960404 30994801907 28115745758 25262766821 22420682553 20464902679 17728362180 16702886635 15686968934 14733738032 13787573077 12842396122 11897219167 10952042212 10039061160 9126080108 8213099056 7300118004 6387136952 5474688816 4562240680 3649792544 2737344408 18248962...
result:
ok 28 numbers
Test #16:
score: 0
Accepted
time: 14ms
memory: 33304kb
input:
8 981030736 935503389 905831819 997942942 961662963 971971316 916753883 950806024
output:
79199943766 66124947723 55282784027 49174383156 43597634412 38264451054 35955429554 33070440665 30276989931 27497054921 24778815503 22787082461 21667782589 20610496507 19570420909 18555338032 17574307296 16593829702 15632166739 14670503776 13708840813 12747177850 11830423967 10913670084 9996916201 9...
result:
ok 36 numbers
Test #17:
score: 0
Accepted
time: 60ms
memory: 50160kb
input:
9 974093639 939349722 984374605 983016315 948537831 977490893 925808537 994566031 909335534
output:
112051943626 93894263739 80259662557 70824539351 63143041079 57193287893 51513369219 47563265799 44614216854 41692201370 38815346711 36036588096 33347324800 30610843973 28621711911 27519788224 26420168934 25347466127 24254201388 23224801900 22207041668 21258503837 20309966006 19361428175 18422078453...
result:
ok 45 numbers
Test #18:
score: 0
Accepted
time: 69ms
memory: 48320kb
input:
9 988753260 930587988 938840994 910709497 931244663 913556182 951019678 937308985 960855700
output:
109705038951 91824947725 78840163566 69540422753 62047209577 56412747531 50870386768 46982501373 44149437333 41299739669 38461654997 35666675405 32850152423 30109483877 28187772477 27103286973 26081421062 25060171928 24047871953 23043653299 22056145642 21118836657 20181527672 19244218687 18313630699...
result:
ok 45 numbers
Test #19:
score: 0
Accepted
time: 66ms
memory: 53908kb
input:
9 948966946 921831063 949684848 947683626 928119557 989949389 935833156 994196727 991744214
output:
111572863297 93514523880 80002832720 70638051681 62973940521 57197371484 51604732268 47681023654 44770606631 41812485545 38969434667 36130105643 33327511201 30566109817 28609812354 27495422224 26443524746 25405592085 24370226064 23378481850 22400943217 21424122486 20447301755 19472482246 18536649090...
result:
ok 45 numbers
Test #20:
score: 0
Accepted
time: 63ms
memory: 53860kb
input:
9 909583482 981756179 985225343 922969840 971691040 997861742 932857966 921931511 962043515
output:
111442653890 92977899586 79614492881 70376796695 62594675067 56787258411 51135016807 47266411565 44397725701 41532472770 38687773444 35904010406 33165342766 30452307548 28488795190 27341123671 26270339273 25207473755 24173527212 23156148520 22173531025 21200561055 20227591085 19254621115 18331651275...
result:
ok 45 numbers
Test #21:
score: 0
Accepted
time: 59ms
memory: 55420kb
input:
9 936231783 985899313 992363534 974752529 929476249 991887369 943524491 907507864 930742311
output:
111525437808 93408169047 79562357436 70316727742 62554098470 56855542632 51298951532 47572194320 44526633227 41616900047 38713260888 35929195386 33196219527 30461524377 28500704695 27459978283 26365915405 25297523718 24269619722 23247703782 22255340248 21288581310 20321822372 19355063434 18418831651...
result:
ok 45 numbers
Test #22:
score: 0
Accepted
time: 75ms
memory: 55616kb
input:
9 942339391 953843426 935935572 908883684 928317637 976125617 996356822 942235350 928538251
output:
110485258497 92469415445 78946571586 69672104067 62104075429 56429014253 50790810595 46978993730 44147030091 41328739088 38529459764 35718643877 32973453497 30219200165 28334729465 27255740575 26220381479 25196447882 24200091060 23219195746 22257526443 21302156918 20346787393 19391417868 18449078477...
result:
ok 45 numbers
Test #23:
score: 0
Accepted
time: 78ms
memory: 55424kb
input:
9 967005685 953100814 986282117 961586053 919175900 935551614 918740864 933101783 999990728
output:
110767245170 93217982963 79651185350 70372375211 62827564823 57195267467 51611586776 47731197422 44773359668 41845807718 38961049559 36088298294 33219219133 30462996541 28514624252 27472875679 26435422862 25406730592 24398875562 23398688574 22406365888 21414043202 20432676598 19468403146 18515302332...
result:
ok 45 numbers
Test #24:
score: 0
Accepted
time: 50ms
memory: 55436kb
input:
9 972340307 935264581 978461803 957503414 978320463 953606628 948586340 929436733 918566572
output:
111231338825 93003676042 79528944023 70229832567 62695516763 56903140939 51218712505 47374728474 44488774193 41616263951 38757135805 35948038585 33138271486 30396415444 28537541978 27452719598 26408963080 25402933107 24400442749 23409760395 22429393157 21471889743 20514386329 19556882915 18608296575...
result:
ok 45 numbers
Test #25:
score: 0
Accepted
time: 74ms
memory: 53868kb
input:
9 968387461 966238574 912201654 906323852 914716857 920514014 984214382 921472420 991332642
output:
109668394536 92007807149 78668776041 69650523239 62136762327 56450680909 50847580729 47021970605 44112035744 41307825322 38525511278 35739445707 32914379897 30195408341 28204596499 27079703267 26003360729 25003039373 24009477199 23033063049 22066824475 21100585901 20134347327 19207874866 18286402446...
result:
ok 45 numbers
Test #26:
score: 0
Accepted
time: 71ms
memory: 55292kb
input:
9 956661351 980048665 908526544 951642594 951220073 979978790 962820592 971016525 933744231
output:
111520453587 93450889752 80175492714 70679037360 62896243503 57138057102 51317234460 47397039800 44457103430 41589839726 38803985846 35973829342 33235556824 30468472516 28555149814 27476915884 26434377238 25390688047 24344392169 23301853523 22339032931 21382371580 20425710229 19469048878 18517828805...
result:
ok 45 numbers
Test #27:
score: 0
Accepted
time: 71ms
memory: 55408kb
input:
9 108 100 110 101 110 108 104 110 105
output:
12389 10328 8855 7832 6976 6314 5662 5246 4939 4620 4313 4008 3697 3397 3178 3045 2916 2796 2676 2558 2442 2337 2232 2127 2023 1919 1815 1711 1607 1506 1405 1304 1203 1102 1001 900 800 700 600 500 400 300 200 100 0
result:
ok 45 numbers
Test #28:
score: 0
Accepted
time: 65ms
memory: 55296kb
input:
9 101 104 106 102 107 100 104 108 102
output:
12172 10127 8683 7659 6811 6175 5547 5131 4822 4514 4212 3905 3603 3301 3097 2982 2870 2755 2643 2531 2423 2321 2219 2117 2015 1913 1811 1709 1607 1506 1405 1304 1203 1102 1001 900 800 700 600 500 400 300 200 100 0
result:
ok 45 numbers
Test #29:
score: 0
Accepted
time: 3ms
memory: 20168kb
input:
4 3 3 8 9
output:
63 39 30 24 18 12 9 6 3 0
result:
ok 10 numbers
Test #30:
score: 0
Accepted
time: 70ms
memory: 53496kb
input:
9 10 8 2 1 1 5 10 1 9
output:
466 367 304 260 220 190 164 144 126 116 106 96 86 77 68 60 54 48 42 38 34 30 28 26 24 22 20 18 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
result:
ok 45 numbers
Test #31:
score: 0
Accepted
time: 71ms
memory: 53716kb
input:
9 1414 1327 1169 1356 296 978 1980 1753 1601
output:
149428 118612 100088 87598 78371 70235 63373 57891 53649 50128 46090 42583 39077 36040 33386 31101 29145 27189 25233 23632 22031 20430 19016 17602 16188 14774 13395 12121 10847 9678 8509 7340 6171 5002 3833 2664 2368 2072 1776 1480 1184 888 592 296 0
result:
ok 45 numbers
Extra Test:
score: 0
Extra Test Passed