QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#847382 | #9920. Money Game 2 | ucup-team073# | RE | 2ms | 5896kb | C++20 | 1.2kb | 2025-01-07 21:56:58 | 2025-01-07 21:56:58 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
using ll=long long;
using ull=unsigned long long;
using i128=__int128;
using pii=std::pair<int,int>;
using piI=std::pair<int,ll>;
constexpr int mod=998244353;
constexpr int maxn=5e5+9;
constexpr int maxlogv=35;
mt19937_64 rnd(time(0));
int n;
int a[maxn<<1];
vector<piI> L[maxn],R[maxn];
void solve()
{
cin>>n;
for(int i=1;i<=n;++i)
cin>>a[i],a[i+n]=a[i];
for(int i=1;i<=2*n;++i)
{
L[i].push_back({i,a[i]});
for(auto &[p,w]:L[i-1])
if(w/2+a[i]>L[i].back().second)
L[i].push_back({p,w/2+a[i]});
}
for(int i=2*n;i;--i)
{
R[i].push_back({i,a[i]});
for(auto &[p,w]:R[i+1])
if(w/2+a[i]>R[i].back().second)
R[i].push_back({p,w/2+a[i]});
}
for(int i=1;i<=n;++i)
{
ll ans=0;
int p=0;
for(int it=L[i+n].size()-1;it>=0;--it)
{
auto[j,w]=L[i+n][it];
if(j<=i) continue;
while(p<R[i].size()-1 && R[i][p+1].first<j)
++p;
ans=max(ans,1ll*w+R[i][p].second);
}
cout<<ans-a[i]<<" \n"[i==n];
}
for(int i=1;i<=2*n;++i)
L[i].clear(),R[i].clear();
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int t=1;cin>>t;
while(t--) solve();
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 5704kb
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: 0ms
memory: 5896kb
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: 0
Accepted
time: 2ms
memory: 5792kb
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 6 5 10 11 11 13 10 5 4 4 8 7 2 5 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:
ok 2420 numbers
Test #4:
score: 0
Accepted
time: 2ms
memory: 5744kb
input:
1000 2 45733740 736448710 1 384264719 4 658671808 379716865 553196572 534986092 1 668964623 4 711670857 237459905 849354895 187613938 2 394629064 371184128 2 616819808 937720703 1 43217931 3 934395080 888433507 810476236 1 587663687 2 542163302 508453558 4 313836277 584869499 445629251 225398284 4 2...
output:
413958095 759315580 384264719 1254322429 1119397578 1175216002 1235849498 668964623 1136546502 1064876265 1239809530 1027491789 580221128 568498660 1085680159 1246130607 43217931 1783849951 1760869165 1721890529 587663687 796390081 779535209 830377481 1020951833 929222211 751348422 704770986 7551365...
result:
ok 2440 numbers
Test #5:
score: -100
Runtime Error
input:
1 500000 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1...