QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#840982 | #9920. Money Game 2 | NKheyuxiang | WA | 1ms | 10024kb | C++14 | 1.1kb | 2025-01-03 10:56:34 | 2025-01-03 10:56:35 |
Judging History
answer
#include<bits/stdc++.h>
#define N 500005
using namespace std;
int n,a[N*2];
int pos[N][51],val[N][51],c[N];
int P[51],V[51],cnt,pp[51],vv[51];
void solve(){
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
for(int i=1;i<=n;i++) a[i+n]=a[i];
cnt=0;
for(int i=2*n;i>=1;i--){
int cc=cnt;
for(int j=1;j<=cc;j++) pp[j]=P[j],vv[j]=V[j]/2+a[i];
cnt=1;P[1]=i,V[1]=a[i];
for(int j=1;j<=cc;j++){
cnt+=(vv[j]!=V[cnt]);
V[cnt]=vv[j];P[cnt]=pp[j];
}
if(i<=n){
c[i]=cnt;
for(int j=1;j<=cnt;j++)
pos[i][j]=P[j],val[i][j]=V[j];
}
}
cnt=0;
for(int i=1;i<=2*n;i++){
int cc=cnt;
for(int j=1;j<=cc;j++) pp[j]=P[j],vv[j]=V[j]/2+a[i];
cnt=1;P[1]=i,V[1]=a[i];
for(int j=1;j<=cc;j++){
cnt+=(vv[j]!=V[cnt]);
V[cnt]=vv[j];P[cnt]=pp[j];
}
if(i>n){
long long ans=2*a[i];P[0]=i+1;
for(int j=1,k=cnt;j<=c[i-n];j++){
while(k>0&&P[k-1]-1<=pos[i-n][j-1]+1) k--;
if(k>0) ans=max(ans,0ll+V[k]+val[i-n][j]);
}
printf("%lld ",ans-a[i]);
}
}
printf("\n");
}
int main(){
int t;
scanf("%d",&t);
while(t--) solve();
}
详细
Test #1:
score: 100
Accepted
time: 1ms
memory: 9924kb
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: 10000kb
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: 1ms
memory: 10024kb
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 12 6 6 5 3 5 5 3 18 16 13 15 9 4 18 17 11 14 9 0 7 9 13 9 11 14 10 15 12 7 6 9 11 11 14 17 16 17 12 14 13 12 10 6 7 12 8 9 5 6 4 4 6 5 4 4 6 5 10 11 11 14 10 5 4 4 8 8 2 5 4 6 11 12 10 10 8 13 17 17 12 9 10 8 6 6 6 7 12 7 9 13 12 12 14 10 12 1...
result:
wrong answer 8th numbers differ - expected: '10', found: '12'