# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
860923 | 2023-10-14T19:12:27 Z | vjudge1 | Speedrun (RMI21_speedrun) | 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]); }