Submission #713637

#TimeUsernameProblemLanguageResultExecution timeMemory
713637kktsXylophone (JOI18_xylophone)C++14
0 / 100
1 ms208 KiB
#include "xylophone.h" #include<bits/stdc++.h> using namespace std; void solve(int n) { vector<int> a(n + 2); a[2] = query(1, 2); for(int i = 3; i <= n; i++) { int x = query(i - 2, i), y = query(i - 1, i); if(x == abs(a[i - 2] - a[i - 1])) { if(a[i - 2] < a[i - 1]) a[i] = a[i - 1] - y; else a[i] = a[i - 1] + y; } else { if(a[i - 2] < a[i - 1]) { if(y == x) a[i] = a[i - 1] - x; else a[i] = a[i - 2] + x; } else { if(y == x) a[i] = a[i - 2] + x; else a[i] = a[i - 1] - x; } } } int id_mn = 1, id_mx = 1; for(int i = 1; i <= n; i++) { if(a[id_mn] > a[i]) id_mn = i; if(a[id_mx] < a[i]) id_mx = i; } if(id_mn > id_mx) { for(int i = 1; i <= n; i++) a[i] *= -1; swap(id_mn, id_mx); } // a[id_mn] --> 1 int add = 1 - a[id_mn]; for(int i = 1; i <= n; i++) answer(i, a[i] + add); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...