# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
363175 | teewar | Xylophone (JOI18_xylophone) | C++14 | 0 ms | 0 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
void solve(int n) {
int l = 1, r = n;
while(r - l > 1) {
int m = (l + r) / 2;
if(query(1, m) == n - 1) {
r = m;
}
else {
l = m;
}
}
int mxpos = r;
int a[n + 1];
for(int i = 1; i <= n; ++i) {
int val;
if(i <= mxpos) {
val = query(i, mxpos);
}
else {
val = query(mxpos, i);
}
a[i] = n - val
}
for(int i = 1; i <= n; ++i) {
cout << answer(i, a[i]);
}
}