Submission #680559

#TimeUsernameProblemLanguageResultExecution timeMemory
680559nutellaXylophone (JOI18_xylophone)C++17
0 / 100
1 ms336 KiB
#include <bits/stdc++.h> #include "xylophone.h" using namespace std; void solve(int N) { vector<bool> was(N + 1); int lo = -1, hi = N - 1; while (lo + 1 < hi) { int mid = lo + hi >> 1; if (query(1, mid + 1) == N - 1) { hi = mid; } else { lo = mid; } } answer(hi + 1, N); was[N] = true; int mn = N, pos = hi; for (int i = hi - 1; i >= 0; --i) { int diff = query(i + 1, pos + 1); int a; if (diff + mn > N || was[diff + mn]) { a = mn - diff; } else if (mn - diff <= 0 || was[mn - diff]) { a = mn + diff; } else if (query(i + 1, hi + 1) == N - mn) { a = mn + diff; } else { a = mn - diff; } answer(i + 1, a); was[a] = true; if (mn > a) { mn = a; pos = i; } } mn = N, pos = hi; for (int i = hi + 1; i < N; ++i) { int diff = query(pos + 1, i + 1); int a; if (diff + mn > N || was[diff + mn]) { a = mn - diff; } else if (mn - diff <= 0 || was[mn - diff]) { a = mn + diff; } else if (query(hi + 1, i + 1) == N - mn) { a = mn + diff; } else { a = mn - diff; } answer(i + 1, a); was[a] = true; if (mn > a) { mn = a; pos = i; } } }

Compilation message (stderr)

xylophone.cpp: In function 'void solve(int)':
xylophone.cpp:11:22: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   11 |         int mid = lo + hi >> 1;
      |                   ~~~^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...