이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "xylophone.h"
#include<vector>
#include<algorithm>
void solve(int n){
if(n<=2){
answer(1,1);
if(n==2)
answer(2,2);
return;
}
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(ans[0]>ans.back())
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... |