# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
857529 | 2023-10-06T10:48:41 Z | Trisanu_Das | Xylophone (JOI18_xylophone) | C++17 | 0 ms | 0 KB |
#include "xylophone.h" #include <bits/stdc++.h> using namespace std; int a[5001]; void solve(int n) { a[1] = 0; a[2] = query(1, 2); for(int i = 2; i < n; i++){ int 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) * (b == a + abs(a[i] - a[i - 1]) ? -1 : 1); } int mn = *min_element(a + 1, A + n + 1); int u, v; for(int i = 1; i <= n; ++i){ A[i] -= mn; if(a[i] == 0) 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]); }