제출 #102450

#제출 시각아이디문제언어결과실행 시간메모리
102450user202729Xylophone (JOI18_xylophone)C++17
0 / 100
5 ms384 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...