# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1260161 | Seyyed_Mojtaba_Mortazavi | Koala Game (APIO17_koala) | C++20 | 0 ms | 0 KiB |
#include "koala.h"
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 5e5 + 10;
int minValue(int n, int w)
{
int b[n];
int r[n];
memset(b, 0, sizeof(b));
b[0] = 1;
playRound(b, r);
for (int i = 0; i < n; i++)
{
if (b[i] >= r[i])
return i;
}
}
int maxValue(int n, int w)
{
int b[n];
int r[n];
vector <int> mx;
for (int i = 0; i < n; i++)
mx.push_back(i);
while (mx.size() > 1)
{
memset(b, 0, sizeof(b));
int tmp = w / mx.size();
for (auto i : mx)
b[i] = tmp;
playRound(b, r);
mx.clear();
for (int i = 0; i < n; i++)
{
if (r[i] > tmp)
mx.push_back(i);
}
}
return mx[0];
}
int greaterValue(int n, int w)
{
int b[n];
int r[n];
memset(b, 0, sizeof(b));
int l = 1, r = 11;
while (r - l > 1)
{
int mid = (l + r) >> 1;
b[0] = b[1] = mid;
playRound(b, r);
if (r[0] > b[0] && r[1] > b[1])
l = mid;
else if (r[0] <= b[0] && r[1] <= b[1])
r = mid;
else
return r[0] < r[1];
}
}
void allValues(int n, int w, int *p)
{
}