Submission #1252479

#TimeUsernameProblemLanguageResultExecution timeMemory
1252479keremXylophone (JOI18_xylophone)C++20
100 / 100
26 ms472 KiB
#include "xylophone.h" #include <bits/stdc++.h> using namespace std; void solve(int N) { int a[N]; for(int i=1;i<N;i++) a[i]=query(i,i+1); for(int i=1;i<N-1;i++){ int t=query(i,i+2); if(t==abs(a[i])+a[i+1]) a[i+1]*=a[i]>0?1:-1; else a[i+1]*=a[i]>0?-1:1; } int k1=0,k2=0,cev1[N+1],cev2[N+1]; cev1[1]=cev2[1]=0; for(int i=2;i<=N;i++){ cev1[i]=cev1[i-1]+a[i-1]; cev2[i]=cev2[i-1]-a[i-1]; k1=min(k1,cev1[i]); k2=min(k2,cev2[i]); } int bas,son; for(int i=1;i<=N;i++){ if(cev1[i]-k1+1==1) bas=i; if(cev1[i]-k1+1==N) son=i; } if(bas<son){ for(int i=1;i<=N;i++) answer(i,cev1[i]-k1+1); } else{ for(int i=1;i<=N;i++) answer(i,cev2[i]-k2+1); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...