Submission #425271

#TimeUsernameProblemLanguageResultExecution timeMemory
425271NachoLibreThe Big Prize (IOI17_prize)C++17
0 / 100
14 ms11160 KiB
#include <bits/stdc++.h> using namespace std; #define sz(a) ((int)(a).size()) typedef vector<int> vint; typedef vector<vint> vvint; typedef long long ll; #ifndef wambule #include "prize.h" #else vint ask(int) { return vint(0); } #endif mt19937_64 rnd(time(0)); int R(int l, int r) { return l + rnd() % (r - l + 1); } vvint cch; vint A(int i) { if(cch[i][0] == -1) cch[i] = ask(i); return cch[i]; } int find_best(int n) { cch.resize(n, vint(2, -1)); int cm = 0; for(int i = 1; i <= 30; ++i) { int x = R(0, n - 1); cm = max(cm, A(x)[0] + A(x)[1]); if(A(x)[0] + A(x)[1] == 0) return x; } for(int i = 0; i < n; ++i) { if(A(i)[0] + A(i)[1] == +0) return i; if(A(i)[0] + A(i)[1] == cm) { int l = i, r = n - 1, m; while(l < r) { int m = l + r + 1 >> 1; while(A(m)[0] + A(m)[1] < cm) { --m; r = m; } if(A(m)[1] == A(i)[1]) l = m; else r = m - 1; } i = l + 1; } } return 0; } #ifdef wambule int main() { ios::sync_with_stdio(0); cin.tie(0); return 0; } #endif

Compilation message (stderr)

prize.cpp: In function 'int find_best(int)':
prize.cpp:37:19: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   37 |     int m = l + r + 1 >> 1;
      |             ~~~~~~^~~
prize.cpp:35:26: warning: unused variable 'm' [-Wunused-variable]
   35 |    int l = i, r = n - 1, m;
      |                          ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...