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 <bits/stdc++.h>
using namespace std;
using vi = vector<int>;
using vvi = vector<vi>;
#define sz(x) int(x.size())
int N;
vi playRound(vi BV)
{
int B[N];
int R[N];
for(int i = 0; i < N; i++)
{
B[i] = BV[i];
}
playRound(B, R);
vi RV(N);
for(int i = 0; i < N; i++)
RV[i] = R[i];
return RV;
}
int minValue(int N_, int W) {
N = N_;
vi B(N, 0);
B[0] = 1;
vi R = playRound(B);
for(int i = 0; i < N; i++)
if(R[i] == 0)
return i;
return 0;
}
int maxValue(int N_, int W) {
N = N_;
vi cand;
for(int i = 0; i < N; i++)
cand.push_back(i);
while(sz(cand) > 1)
{
int toput = W / sz(cand);
vi B(N, 0);
for(int i : cand)
B[i] = toput;
vi R = playRound(B);
vi newcand;
for(int i = 0; i < N; i++)
{
if(B[i] > 0 && R[i] > B[i])
newcand.push_back(i);
}
cand = newcand;
}
return cand[0];
}
int greaterValue(int N_, int W) {
N = N_;
int lo = 1, hi = W/2;
while(lo != hi)
{
int mid = (lo+hi)/2;
vi B(N, 0);
B[0] = B[1] = mid;
vi R = playRound(B);
vi taken(N, 0);
for(int i = 0; i < N; i++)
if(R[i] > B[i])
taken[i] = 1;
if(taken[0] && !taken[1])
return 0;
if(taken[1] && !taken[0])
return 1;
if(taken[1] && taken[0])
lo = mid+1;
else
hi = mid-1;
}
return -1;
}
void allValues(int N_, int W, int *P_) {
N = N_;
vi P(N);
for(int i = 0; i < N; i++)
P[i] = P_[i];
if (W == 2*N) {
// TODO: Implement Subtask 4 solution here.
// You may leave this block unmodified if you are not attempting this
// subtask.
} else {
// TODO: Implement Subtask 5 solution here.
// You may leave this block unmodified if you are not attempting this
// subtask.
}
}
# | 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... |