# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
860928 | 2023-10-14T19:19:45 Z | vjudge1 | Xylophone (JOI18_xylophone) | C++17 | 0 ms | 0 KB |
#include <bits/stdc++.h> using namespace std; int a[5001]; void solve(int n) { int x, y, i, u, v, mn; a[2] = query(1, 2); for (i = 2; i < n; i++) { x = query(i, i + 1); y = query(i - 1, i + 1); a[i + 1] = a[i] + x * (a[i] - a[i - 1] < 0 ? 1 : -1) * (y == x + abs(a[i] - a[i - 1]) ? -1 : 1); } mn = *min_element(a + 1, a + n + 1); for (i = 1; i <= n; i++) { a[i] -= mn; if (!a[i]) u = i; if (a[i] == n - 1) v = i; } bool flag = u < v; for (int i = 1; i <= n; i++) answer(i, flag ? a[i] + 1 : n - a[i]); }