Submission #346507

#TimeUsernameProblemLanguageResultExecution timeMemory
346507jamielimXylophone (JOI18_xylophone)C++14
100 / 100
126 ms620 KiB
#include "xylophone.h" #include <bits/stdc++.h> using namespace std; void solve(int n) { int x[n],y[n]; for(int i=1;i<=n-2;i++){ x[i-1]=query(i,i+2); y[i-1]=query(i,i+1); } y[n-2]=query(n-1,n); int a[n]; memset(a,0,sizeof(a)); a[1]=y[0]; for(int i=0;i<n-2;i++){ if(x[i]==y[i]+y[i+1]){ if(a[i]<a[i+1])a[i+2]=a[i+1]+y[i+1]; else a[i+2]=a[i+1]-y[i+1]; }else{ if(a[i]<a[i+1])a[i+2]=a[i+1]-y[i+1]; else a[i+2]=a[i+1]+y[i+1]; } } int ma=0,mi=0; for(int i=1;i<n;i++){ if(a[i]>a[ma])ma=i; if(a[i]<a[mi])mi=i; } int k=a[mi]; if(ma>mi){ for(int i=0;i<n;i++){ a[i]+=-k+1; } }else{ for(int i=0;i<n;i++){ a[i]+=-k; a[i]=n-a[i]; } } for(int i=0;i<n;i++)answer(i+1,a[i]); return; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...