This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "xylophone.h"
#include<vector>
#include<algorithm>
void solve(int n){
std::vector<int> ans(n);
int lastdiff=ans[1]=query(1,2);
int lastsign=1;
for(int i=2;i<n;++i){
int diff=query(i,i+1);
int sign=lastsign;
if(lastdiff+diff>=n||query(i-1,i+1)!=lastdiff+diff)
sign=-sign;
ans[i]=ans[i-1]+sign*diff;
lastsign=sign;
lastdiff=diff;
}
int offset=1-*std::min_element(begin(ans),end(ans));
for(int& x:ans)x+=offset;
if(std::find(begin(ans),end(ans),1)>std::find(begin(ans),end(ans),n))
for(int& x:ans)x=n+1-x;
for(int i=0;i<n;++i)
answer(i+1,ans[i]);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |