제출 #1190493

#제출 시각아이디문제언어결과실행 시간메모리
1190493Panda50OXylophone (JOI18_xylophone)C++20
0 / 100
0 ms404 KiB
#include "xylophone.h" static int A[5001]; void solve(int N) { int mx_dif = query(1, N); int l = 1, r = N; while(l < r) { if(query(l,r-1) != mx_dif) break; --r; } while(l < r) { if(query(l+1, r) != mx_dif) break; ++l; } A[l] = 1; A[r] = N; int dif = 0; for(int i = l-1; i >= 1; --i) { int new_dif = query(i, l); if(new_dif > dif) { dif = new_dif; A[i] = A[l] + dif; } else { A[i] = A[i+1] - query(i,i+1); } } for(int i = l+1; i < r; ++i) { int new_dif = query(l, i); if(new_dif > dif) { dif = new_dif; A[i] = A[l] + dif; } else { A[i] = A[i-1] - query(i-1, i); } } for(int i = r+1; i <= N; ++i) { int new_dif = query(r, i); if(new_dif > dif) { dif = new_dif; A[i] = A[r] - dif; } else { A[i] = A[i-1] + query(i-1, i); } } for(int i = 1; i <= N; i++) { answer(i, A[i]); } } /* 5 1 5 3 4 2 */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...