#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 = 20, hi = 70;
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.
}
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
5 ms |
316 KB |
Output is correct |
2 |
Correct |
5 ms |
208 KB |
Output is correct |
3 |
Correct |
3 ms |
208 KB |
Output is correct |
4 |
Correct |
4 ms |
208 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
17 ms |
320 KB |
Output is correct |
2 |
Correct |
12 ms |
324 KB |
Output is correct |
3 |
Correct |
12 ms |
208 KB |
Output is correct |
4 |
Correct |
12 ms |
208 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1 ms |
208 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
0 ms |
208 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
0 ms |
208 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |