제출 #134144

#제출 시각아이디문제언어결과실행 시간메모리
134144BoxworldXylophone (JOI18_xylophone)C++14
100 / 100
123 ms504 KiB
#include "xylophone.h" #include <bits/stdc++.h> using namespace std; int a[5050][2]; void solve(int N) { int tmp0=query(1,2),mk=1; a[1][0]=N;a[2][0]=N+tmp0; a[1][1]=N;a[2][1]=N-tmp0; int Mi1=N,Mi2=N-tmp0; for(int i=3;i<=N;i++){ int tmp1=query(i-1,i),tmp2=query(i-2,i); if (tmp0+tmp1!=tmp2)mk*=-1; a[i][0]=a[i-1][0]+tmp1*mk; if (a[i][0]<Mi1)Mi1=a[i][0]; a[i][1]=a[i-1][1]-tmp1*mk; if (a[i][1]<Mi2)Mi2=a[i][1]; tmp0=tmp1; } int alr_N=0,print=0; for (int i=1;i<=N;i++){ a[i][0]-=(Mi1-1); if (a[i][0]==N)alr_N=1; if (a[i][0]==1&&alr_N==1)print=1; a[i][1]-=(Mi2-1); } for (int i=1;i<=N;i++)answer(i,a[i][print]); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...