제출 #1156735

#제출 시각아이디문제언어결과실행 시간메모리
1156735ZflopXylophone (JOI18_xylophone)C++20
0 / 100
0 ms408 KiB
#include <bits/stdc++.h> #include "xylophone.h" using namespace std; void solve(int N) { vector<int>v(N + 1); v[1] = N; int d = query(1,2); v[2] = N - d; for (int i = 3; i <= N;++i) { int a = query(i - 2,i); d = abs(v[i - 1] - v[i - 2]); //cout << d << ' ' << a << ' ' << v[i - 1] << ' ' << v[i - 2] << ' ' << i << '\n'; if (d == a) { int dif = query(i - 1,i); if (v[i - 1] > v[i - 2]) { v[i] = v[i - 1] - dif; } else v[i] = v[i - 1] + dif; } else { int r = abs(v[i - 1] - v[i - 2]); int dif = query(i - 1,i); if (dif + r == a) { if (v[i - 1] > v[i - 2]) v[i] = v[i - 1] + dif; else v[i] = v[i - 1] - dif; } else { if (v[i - 2] > v[i - 1]) v[i] = v[i - 1] + dif; else v[i] = v[i - 1] - dif; } } } int mn = v[1]; for (int i = 1; i <= N;++i) mn = min(mn,v[i]); for (int i = 1; i <= N;++i) answer(i,v[i] - mn + 1); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...