This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "koala.h"
#include <algorithm>
#include <vector>
std::vector<bool> query(const std::vector<int> &vec)
{
static int B[105], R[105];
int n = vec.size();
for (int i = 0; i < n; i++)
B[i] = vec[i];
playRound(B, R);
std::vector<bool> res(n);
for (int i = 0; i < n; i++)
res[i] = R[i] > B[i];
return res;
}
int minValue(int n, int m)
{
std::vector<int> vec(n);
vec[0] = 1;
auto res = query(vec);
for (int i = 0; i < n; i++)
{
if (!res[i])
return i;
}
return -1;
}
int maxValue(int n, int m)
{
std::vector<bool> in(n, true);
int cnt = n;
while (cnt > 1)
{
int w = m / cnt;
std::vector<int> vec(n);
for (int i = 0; i < n; i++)
vec[i] = in[i] ? w : 0;
auto res = query(vec);
cnt = 0;
for (int i = 0; i < n; i++)
{
in[i] = in[i] & res[i];
cnt += in[i];
}
}
for (int i = 0; i < n; i++)
{
if (in[i])
return i;
}
return -1;
}
bool comp(int n, int x, int y)
{
std::vector<int> vec(n);
vec[x] = vec[y] = 4;
auto res = query(vec);
if (res[x] != res[y])
return res[y];
if (res[x])
{
vec[x] = vec[y] = 8;
return query(vec)[y];
}
vec[x] = vec[y] = 2;
res = query(vec);
if (res[x] != res[y])
return res[y];
vec[x] = vec[y] = 1;
return query(vec)[y];
}
int greaterValue(int n, int m)
{
return comp(n, 0, 1);
}
void allValues(int n, int m, int *arr)
{
std::vector<int> seq(n);
for (int i = 0; i < n; i++)
seq[i] = i;
std::stable_sort(seq.begin(), seq.end(), [&] (int x, int y)
{
if (n == m)
return comp(n, x, y);
std::vector<int> vec(n, 0);
vec[x] = vec[y] = n;
return (bool)query(vec)[y];
});
for (int i = 0; i < n; i++)
arr[seq[i]] = i + 1;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |