Submission #130614

#TimeUsernameProblemLanguageResultExecution timeMemory
130614tutisXylophone (JOI18_xylophone)C++17
100 / 100
119 ms504 KiB
#include <bits/stdc++.h> #pragma GCC optimize ("O3") #include "xylophone.h" using namespace std; void solve(int N) { int A[N + 1]; A[1] = 0; A[2] = A[1] + query(1, 2); for (int i = 3; i <= N; i++) { int x = query(i - 1, i); int y = query(i - 2, i); if (y == x + abs(A[i - 1] - A[i - 2])) { if (A[i - 1] > A[i - 2]) A[i] = A[i - 1] + x; else A[i] = A[i - 1] - x; } else { if (A[i - 1] < A[i - 2]) A[i] = A[i - 1] + x; else A[i] = A[i - 1] - x; } } auto it1 = min_element(A + 1, A + (N + 1)); auto itn = max_element(A + 1, A + (N + 1)); if (it1 > itn) { for (int i = 1; i <= N; i++) A[i] = -A[i]; } int x = *min_element(A, A + (N + 1)); for (int i = 1; i <= N; i++) { A[i] -= x; A[i]++; answer(i, A[i]); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...