Submission #66117

#TimeUsernameProblemLanguageResultExecution timeMemory
66117bortozXylophone (JOI18_xylophone)C++17
100 / 100
164 ms700 KiB
#include <bits/stdc++.h> using namespace std; #define fi first #define se second int query(int,int); void answer(int,int); void solve(int N) { vector<int> V(N); V[1] = query(1,2); for(int i=2; i<N; i++) { int a = query(i,i+1); int b = query(i-1,i+1); if((abs(a-b) == abs(V[i-1]-V[i-2])) == (V[i-2] < V[i-1])) V[i] = V[i-1] + a; else V[i] = V[i-1] - a; } auto it = minmax_element(V.begin(),V.end()); bool flip = it.fi < it.se; int mi = *it.fi; for(int& i : V) i = flip ? i+1-mi : N-i+mi; for(int i=1; i<=N; i++) answer(i,V[i-1]); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...