QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#841095 | #9920. Money Game 2 | m_j | WA | 2ms | 7756kb | C99 | 1.6kb | 2025-01-03 13:13:24 | 2025-01-03 13:13:24 |
Judging History
answer
#include<stdio.h>
int a[500000],b[500000],c[500000];
long long r[500000];
int main() {
int N,i,j,n,cur,next,ll,rr;
long long t;
for(scanf("%d",&N);N--;) {
scanf("%d",&n);
for(i=0;i<n;i++) scanf("%d",&a[i]),r[i]=a[i];
for(b[0]=a[0],i=1;i<n;i++) b[i]=b[i-1]/2+a[i];
for(c[n-1]=a[n-1],i=n-2;i>=0;i--) c[i]=c[i+1]/2+a[i];
for(i=0;i<n;i++) {
t=(long long)b[i]+c[i]-a[i];
if (t>r[i]) r[i]=t;
}
//for(i=0;i<n;i++) printf("%d %d %lld\n",b[i],c[i],r[i]);
for(i=1;i<n;i++) {
ll=i,rr=i-1;
t=a[i];
if (t!=b[i]) {
b[i]=t;
for(j=1,cur=i;j<n-1;j++,cur=next) {
next=cur==n-1?0:cur+1;
t=b[cur]/2+a[next];
if (t!=b[next]) b[next]=t; else break;
}
ll=cur;
}
b[i-1]=a[i-1]+b[i==1?n-1:i-2]/2;
t=a[i-1];
if (t!=c[i-1]) {
c[i-1]=t;
for(j=1,cur=i-1;j<n;j++,cur=next) {
next=cur==0?n-1:cur-1;
t=c[cur]/2+a[next];
if (t!=c[next]) c[next]=t; else break;
}
rr=cur;
}
//printf("%d %d\n",ll,rr);
for(cur=i;;cur=cur==n-1?0:cur+1) {
t=(long long)b[cur]+c[cur]-a[cur];
if (cur!=i && t>r[cur]) r[cur]=t;
if (cur==ll) break;
}
for(cur=i-1;;cur=cur==0?n-1:cur-1) {
t=(long long)b[cur]+c[cur]-a[cur];
if (cur!=i-1 && t>r[cur]) r[cur]=t;
if (cur==rr) break;
}
//for(j=0;j<n;j++) printf("%d %d %lld\n",b[j],c[j],r[j]);
}
for(i=0;i<n;i++) printf("%lld%c",r[i],i==n-1?'\n':' ');
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1ms
memory: 7756kb
input:
3 5 2 1 4 3 5 5 2 1 3 1 2 1 1000000000
output:
6 5 7 8 8 4 4 5 4 4 1000000000
result:
ok 11 numbers
Test #2:
score: 0
Accepted
time: 1ms
memory: 5724kb
input:
1 10 8 15 18 15 13 4 14 4 17 5
output:
30 37 41 39 34 27 29 26 31 27
result:
ok 10 numbers
Test #3:
score: -100
Wrong Answer
time: 2ms
memory: 7720kb
input:
1000 4 8 9 7 9 1 9 1 10 2 3 9 3 4 3 2 4 0 4 3 1 4 10 8 4 6 1 9 1 4 4 10 10 1 6 1 9 1 0 2 4 6 4 8 1 6 7 2 5 10 4 9 2 1 4 3 5 5 9 3 9 8 9 4 4 8 5 6 2 10 1 1 7 3 9 2 4 4 2 4 1 2 3 5 2 1 1 4 3 2 0 9 4 7 3 10 1 3 4 1 2 2 6 4 1 2 3 3 1 5 3 5 8 4 2 9 3 4 5 9 10 3 4 6 5 4 0 1 6 4 3 1 10 1 4 1 9 5 7 4 8 1 6 ...
output:
18 18 17 18 9 10 7 10 6 6 5 3 5 5 3 18 16 13 15 9 4 18 17 11 14 9 0 7 8 13 9 11 14 10 12 12 7 6 9 11 11 13 17 16 17 12 14 13 12 10 6 7 12 8 9 5 6 4 4 6 4 4 4 4 5 10 11 11 13 10 5 4 4 8 7 2 4 4 6 11 12 10 10 7 13 17 16 12 9 10 8 6 6 6 7 11 7 9 13 12 11 14 10 12 16 18 15 18 19 5 11 13 4 4 6 7 12 14 13...
result:
wrong answer 64th numbers differ - expected: '6', found: '4'