Submission #876717

#TimeUsernameProblemLanguageResultExecution timeMemory
876717abczzThe Big Prize (IOI17_prize)C++14
Compilation error
0 ms0 KiB
#include "prize.h"
#include <iostream>
#include <vector>
#include <random>
#include <chrono>
#include <map>
#define ll long long
 
using namespace std;
 
ll f;
map <ll, vector<int> > mp;
vector <int> R;
vector <int> query(u) {
  if (mp.find(u) != mp.end()) return mp[u];
  else return mp[u] = ask(u);
}
void solve(ll l, ll r, ll ql, ll qr) {
	if (l > r || ql + qr == R[0] + R[1]) return;
	ll mid = (l+r)/2;
	for (int i=mid; i<=r; ++i) {
		auto u = query(i);
		if (!u[0] && !u[1]) {
			f = i;
			return;
		}
		else if (u[0]+u[1] == R[0]+R[1]) {
			solve(l, mid-1, ql, u[1]+(i-mid));
			if (f != -1) return;
			solve(i+1, r, u[0], qr);
			return;
		}
    else if (u[0]+u[1] > R[0]+R[1]) {
      R = u;
      f = 1e18;
      return;
    }
	}
	solve(l, mid-1, ql, qr+(r-mid+1));
}
 
int find_best(int n) {
  mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
  R = {-1, -1};
  for (int i=0; i<100; ++i) {
    ll id = rng() % n;
    auto u = query(id);
    if (!u[0] && !u[1]) return id;
    if (u[0]+u[1] > R[0]+R[1]) swap(u, R);
  }
  while (true) {
    f = -1;
    solve(0, n-1, 0, 0);
    if (f != 1e18) break;
  }
  return f;
}

Compilation message (stderr)

prize.cpp:14:20: error: 'u' was not declared in this scope
   14 | vector <int> query(u) {
      |                    ^
prize.cpp:14:23: error: expected ',' or ';' before '{' token
   14 | vector <int> query(u) {
      |                       ^
prize.cpp: In function 'void solve(long long int, long long int, long long int, long long int)':
prize.cpp:22:19: error: no match for call to '(std::vector<int>) (int&)'
   22 |   auto u = query(i);
      |                   ^
prize.cpp: In function 'int find_best(int)':
prize.cpp:47:22: error: no match for call to '(std::vector<int>) (long long int&)'
   47 |     auto u = query(id);
      |                      ^