Submission #1190303

#TimeUsernameProblemLanguageResultExecution timeMemory
1190303boclobanchatXylophone (JOI18_xylophone)C++20
100 / 100
26 ms456 KiB
#include"xylophone.h" #include<bits/stdc++.h> using namespace std; const int MAXN=5555; int da[MAXN],db[MAXN],B[MAXN]; void solve(int N) { for(int i=1;i<N;i++) da[i]=query(i,i+1); for(int i=1;i<N-1;i++) db[i]=query(i,i+2); B[2]=da[1]; for(int i=3;i<=N;i++) { B[i]=B[i-1]+da[i-1]; if(max(abs(B[i]-B[i-1]),max(abs(B[i]-B[i-2]),abs(B[i-1]-B[i-2])))!=db[i-2]) B[i]=B[i-1]-da[i-1]; } int mx=-1e9; for(int i=1;i<=N;i++) mx=max(mx,B[i]); for(int i=1;i<=N;i++) B[i]+=N-mx; for(int i=1;i<=N;i++) if(B[i]==1) break; else if(B[i]==N) { for(int j=1;j<=N;j++) B[j]=N-B[j]+1; break; } for(int i=1;i<=N;i++) answer(i,B[i]); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...