제출 #643796

#제출 시각아이디문제언어결과실행 시간메모리
643796kausarmeXylophone (JOI18_xylophone)C++14
100 / 100
128 ms384 KiB
#include "xylophone.h" void solve(int N) { int A[N]; A[0] = 0; int D[N - 1]; // berisi selisih A[i] dengan A[i-1] int T[N - 2]; // erisi selisih A[i] dengan A[i-1] for(int i = 1; i < N; i++) { D[i - 1] = query(i, i + 1); } for(int i = 2; i < N; i++) { T[i - 2] = query(i - 1, i + 1); } A[1] = D[0]; bool up = true; for(int i = 2; i < N; i++) { if(D[i - 2] + D[i - 1] != T[i - 2]) { up = !up; } A[i] = A[i - 1] + D[i - 1] * ((int)up * 2 - 1); } int maks = 0, mins = 0; int maksPos = 0, minsPos = 0; for(int i = 1; i < N; i++) { if(A[i] > maks) { maks = A[i]; maksPos = i; } if(A[i] < mins) { mins = A[i]; minsPos = i; } } if(minsPos < maksPos) { for(int i = 0; i < N; i++) { answer(i + 1, A[i] - mins + 1); } } else { for(int i = 0; i < N; i++) { answer(i + 1, maks - A[i] + 1); } } return; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...