Submission #1255645

#TimeUsernameProblemLanguageResultExecution timeMemory
1255645ilhan_ardaXylophone (JOI18_xylophone)C++20
100 / 100
26 ms432 KiB
#include "xylophone.h" #include <bits/stdc++.h> using namespace std; static int A[5000]; void solve(int N) { int a[N+5] = {0}, mn = 1; a[1] = 1; a[2] = 1 + query(1, 2); for(int i=3;i<=N;i++){ int x = query(i-1, i); int y = query(i-2, i); int t1 = a[i-1] + x, t2 = a[i-1]-x; if(a[i-2]<a[i-1]){ if(y == t1 - a[i-2]) a[i] = t1; else a[i] = t2; } else{ if(y == a[i-2] - t2) a[i] = t2; else a[i] = t1; } mn = min(mn, a[i]); } int bir = -1, en = -1; for(int i=1;i<=N;i++){ a[i] += 1-mn; if(a[i] == 1)bir = i; if(a[i] == N)en = i; } bool control = bir<en ? false: true; for(int i=1;i<=N;i++){ int x = !control ? a[i] : N-a[i]+1; answer(i, x); } //~ int value = query(1, N); //~ for(int i = 1; i <= N; i++) { //~ answer(i, i); //~ } return; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...