Submission #1155447

#TimeUsernameProblemLanguageResultExecution timeMemory
1155447AlgorithmWarriorXylophone (JOI18_xylophone)C++20
100 / 100
25 ms416 KiB
#include <cstdio> #include <cstdlib> #include "xylophone.h" int const MAX=5005; int delta[MAX]; int sign(int x){ if(x>0) return 1; return -1; } void solve(int N) { delta[2]=query(1,2); int i; for(i=3;i<=N;++i){ int del2=query(i-1,i); int del3=query(i-2,i); if(abs(delta[i-1])+del2==del3) delta[i]=sign(delta[i-1])*del2; else delta[i]=-sign(delta[i-1])*del2; } for(i=3;i<=N;++i) delta[i]+=delta[i-1]; int pmin=1,pmax=1; for(i=2;i<=N;++i){ if(delta[i]<delta[pmin]) pmin=i; if(delta[i]>delta[pmax]) pmax=i; } if(pmax<pmin){ for(i=2;i<=N;++i) delta[i]*=-1; } int vmin=0; for(i=2;i<=N;++i) if(delta[i]<vmin) vmin=delta[i]; for(i=1;i<=N;++i){ delta[i]+=1-vmin; answer(i,delta[i]); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...