Submission #341940

#TimeUsernameProblemLanguageResultExecution timeMemory
341940ogibogi2004Xylophone (JOI18_xylophone)C++14
100 / 100
107 ms632 KiB
#include "xylophone.h" #include<bits/stdc++.h> using namespace std; int a[5002]; int d[5002],t[5002]; void solve(int N) { for(int i=1;i<N;i++) { d[i]=query(i,i+1); if(i+2<=N) { t[i]=query(i,i+2); } } if(t[1]==d[1]+d[2]) { a[2]=a[1]+d[1]; a[3]=a[2]+d[2]; } else if(t[1]==d[1]) { a[2]=a[1]+d[1]; a[3]=a[2]-d[2]; } else { a[2]=a[1]+d[1]; a[3]=a[2]-d[2]; } for(int i=4;i<=N;i++) { if(t[i-2]==d[i-2]+d[i-1]) { if(a[i-1]==a[i-2]+d[i-2]) { a[i]=a[i-1]+d[i-1]; } else a[i]=a[i-1]-d[i-1]; } else { if(a[i-1]==a[i-2]+d[i-2]) { a[i]=a[i-1]-d[i-1]; } else { a[i]=a[i-1]+d[i-1]; } } } int mina=0; for(int i=1;i<=N;i++)mina=min(mina,a[i]); for(int i=1;i<=N;i++) { a[i]-=mina; a[i]++; } for(int i=1;i<=N;i++) { if(a[i]==1) { for(int j=1;j<=N;j++) { answer(j,a[j]); } return; } if(a[i]==N) { for(int j=1;j<=N;j++) { answer(j,N-a[j]+1); } return; } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...