Submission #1155716

#TimeUsernameProblemLanguageResultExecution timeMemory
1155716njoopXylophone (JOI18_xylophone)C++20
100 / 100
26 ms456 KiB
#include "xylophone.h" #include <bits/stdc++.h> using namespace std; int ans[5000], diff[5000], s, t, mn, mnpos, mx, mxpos; int mul(int x, int y) { if(x < y) return 1; return -1; } void solve(int n) { ans[1] = 0; ans[2] = query(1, 2); diff[2] = ans[2]; mnpos = 1; mxpos = 1; for(int i=3; i<=n; i++) { s = query(i-2, i); t = query(i-1, i); diff[i] = t; if(s == diff[i-1]) { ans[i] = ans[i-1] - t*mul(ans[i-2], ans[i-1]); } else if(diff[i-1] + t == s) { ans[i] = ans[i-1] + t*mul(ans[i-2], ans[i-1]); } else { ans[i] = ans[i-1] - t*mul(ans[i-2], ans[i-1]); } if(ans[i] < mn) { mn = ans[i]; mnpos = i; } if(ans[i] > mx) { mx = ans[i]; mxpos = i; } } for(int i=1; i<=n; i++) { ans[i] += 1-mn; } if(mnpos > mxpos) { for(int i=1; i<=n; i++) { ans[i] = n-ans[i]+1; } } for(int i=1; i<=n; i++) { answer(i, ans[i]); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...