#include "koala.h"
#include <bits/stdc++.h>
using namespace std;
const int nx=1e2+5;
int minValue(int N, int W) {
int qrs[nx], ans[nx];
for (int i=0; i<N; i++) qrs[i]=(i==0);
playRound(qrs, ans);
for (int i=1; i<N; i++) if (ans[i]==0) return i;
return 0;
}
int maxValue(int N, int W) {
int qrs[nx], ans[nx], per, t=4;
vector<int> idx, nidx;
for (int i=0; i<N;i ++) idx.push_back(i);
while (t--)
{
per=W/idx.size();
for (int i=0; i<N; i++) qrs[i]=0;
for (auto x:idx) qrs[x]=per;
playRound(qrs, ans);
for (int i=0; i<N; i++) if (qrs[i]>0&&ans[i]>qrs[i]) nidx.push_back(i);
idx=nidx;
nidx.clear();
}
return idx[0];
}
int solve(int x, int *qrs, int *ans)
{
qrs[0]=qrs[1]=x;
playRound(qrs, ans);
if (ans[0]<=qrs[0]&&ans[1]>qrs[1]) return -1;
if (ans[0]>qrs[0]&&ans[1]<=qrs[1]) return -2;
if (ans[0]<=qrs[0]||ans[1]<=qrs[1]) return 1;
return 0;
}
int greaterValue(int N, int W) {
int qrs[nx], ans[nx];
for (int i=0; i<N; i++) qrs[i]=0;
int l=1, r=10;
while (l<r)
{
int md=(l+r)/2;
int tmp=solve(md, qrs, ans);
if (tmp==-1) return 1;
if (tmp==-2) return 0;
if (tmp) r=md;
else l=md+1;
}
solve(l, qrs, ans);
if (ans[0]>qrs[0]) return 0;
else return 1;
}
void allValues(int N, int W, int *P) {
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... |