Submission #316077

#TimeUsernameProblemLanguageResultExecution timeMemory
316077MrDominoThe Big Prize (IOI17_prize)C++14
20 / 100
76 ms1528 KiB
#include <bits/stdc++.h>
#include "prize.h"

using namespace std;

mt19937 rng((long long) (new char));

int find_best(int n) {
  vector<int> o;
  for (int i = 0; i < n; i++) {
    o.push_back(i);
  }
  reverse(o.begin(), o.end());
  int q = 0;
  int l = 0;
  while (l < n) {
    int r = l, lo = l + 1, hi = n - 1;
    vector<int> v_l = ask(o[l]); q++;
    if (v_l[0] == 0 && v_l[1] == 0) {
      return o[l];
    }
    while (lo <= hi) {
      int pos = (lo + hi) / 2;
      vector<int> v_pos = ask(o[pos]); q++;
      if (v_pos == v_l) {
        r = pos;
        lo = pos + 1;
      } else {
        hi = pos - 1;
      }
    }
    l = r + 1;
  }
}

Compilation message (stderr)

prize.cpp: In function 'int find_best(int)':
prize.cpp:9:15: warning: control reaches end of non-void function [-Wreturn-type]
    9 |   vector<int> o;
      |               ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...