제출 #1179126

#제출 시각아이디문제언어결과실행 시간메모리
1179126TsaganaXylophone (JOI18_xylophone)C++20
100 / 100
26 ms436 KiB
#include "xylophone.h" #include <algorithm> using namespace std; static int P[5010], A[5010]; void solve(int n) { for (int i = 2; i <= n; i++) P[i] = query(i-1, i); A[1] = 0; A[2] = P[2]; for(int i=3; i<=n; i++){ int sg = A[i-1] > A[i-2] ? 1 : -1; if (query(i-2, i) != P[i-1] + P[i]) sg *= -1; A[i] = A[i-1] + sg * P[i]; } int x = min_element(A+1, A+n+1)-A, z = A[x]; int y = max_element(A+1, A+n+1)-A; for (int i = 1; i <= n; i++) A[i] -= z - 1; if (x > y) for (int i = 1; i <= n; i++) A[i] = n - A[i] + 1; for (int i = 1; i <= n; i++) answer(i, A[i]); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...