제출 #363459

#제출 시각아이디문제언어결과실행 시간메모리
363459ThistleXylophone (JOI18_xylophone)C++14
100 / 100
126 ms624 KiB
#include "xylophone.h" static int a[5000],b[5000]; int c[5000],d[5000]; void solve(int N) { int n=N; for(int i=0;i<n-1;i++){ c[i]=query(i+1,i+2); } for(int i=0;i<n-2;i++){ d[i]=query(i+1,i+3); } b[0]=c[0]; for(int i=0;i<n-2;i++){ if(d[i]==c[i]+c[i+1]){ if(b[i]>0) b[i+1]=c[i+1]; else b[i+1]=-c[i+1]; } else{ if(b[i]>0) b[i+1]=-c[i+1]; else b[i+1]=c[i+1]; } } for(int i=0;i<n-1;i++){ a[i+1]=a[i]+b[i]; } int mn=0,mx=0; for(int i=0;i<n;i++){ if(a[mn]>a[i]) mn=i; if(a[mx]<a[i]) mx=i; } if(mn>mx){ for(int i=0;i<n-1;i++){ a[i+1]=a[i]-b[i]; } } mn=0; for(int i=0;i<n;i++) if(mn>a[i]) mn=a[i]; for(int i=0;i<n;i++) a[i]+=(1-mn); for(int i=0;i<n;i++) answer(i+1,a[i]); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...