# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
981304 |
2024-05-13T04:09:27 Z |
pcc |
Koala Game (APIO17_koala) |
C++17 |
|
711 ms |
1512 KB |
#include "koala.h"
#include <bits/stdc++.h>
using namespace std;
const int mxn = 110;
int ask[mxn],res[mxn];
int N,W;
void play(int* a,int* b){
cerr<<"ASK:"<<endl;for(int i = 0;i<N;i++)cerr<<a[i]<<(i%10 == 9?"\n":" ");cerr<<endl;
playRound(a,b);
cerr<<"RES:"<<endl;for(int i = 0;i<N;i++)cerr<<b[i]<<(i%10 == 9?"\n":" ");cerr<<endl;
}
namespace S1{
int GO(){
memset(ask,0,sizeof(ask));
ask[0] = 1;
play(ask,res);
if(res[0] == 2){
for(int i = 1;i<N;i++)if(!res[i])return i;
assert(false);
}
else return 0;
memset(ask,0,sizeof(ask));
ask[1] = 1;
play(ask,res);
for(int i = 2;i<N;i++)if(!res[i])return i;
assert(false);
return -1;
}
}
int minValue(int NN, int WW) {
// TODO: Implement Subtask 1 solution here.
// You may leave this function unmodified if you are not attempting this
// subtask.
N = NN,W = WW;
return S1::GO();
}
namespace S2{
int GO(){
for(int i = 0;i<N;i++)ask[i] = 1;
play(ask,res);
int num = N/2;
while(num>1){
int cnt = 0;
for(int i = 0;i<N;i++)if(res[i]==1)res[i] = 0;
int val = N/num;
for(int i = 0;i<N;i++){
if(res[i])res[i] = val;
}
play(res,res);
num = 0;
for(int i = 0;i<N;i++){
num += res[i]>1;
}
}
for(int i = 0;i<N;i++)if(res[i]>=*max_element(res,res+N))return i;
assert(false);
}
}
int maxValue(int NN, int WW) {
// TODO: Implement Subtask 2 solution here.
// You may leave this function unmodified if you are not attempting this
// subtask.
N = NN,W = WW;
return S2::GO();
}
namespace S3{
int GO(){
int l = 1,r = 12;
while(l != r){
int mid = (l+r)>>1;
memset(ask,0,sizeof(ask));
ask[0] = ask[1] = mid;
play(ask,res);
if(res[0]>mid&&res[1]>mid)l = mid+1;
else if(res[0]<=mid&&res[1]<=mid)r = mid-1;
else if(res[0]>mid)return 0;
else if(res[1]>mid)return 1;
}
ask[0] = ask[1] = l;
play(ask,res);
return (res[0]>l?0:1);
}
}
int greaterValue(int NN, int WW) {
// TODO: Implement Subtask 3 solution here.
// You may leave this function unmodified if you are not attempting this
// subtask.
N = NN,W = WW;
return S3::GO();
}
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.
}
}
Compilation message
koala.cpp: In function 'int S2::GO()':
koala.cpp:50:8: warning: unused variable 'cnt' [-Wunused-variable]
50 | int cnt = 0;
| ^~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
46 ms |
464 KB |
Output is correct |
2 |
Correct |
46 ms |
344 KB |
Output is correct |
3 |
Correct |
47 ms |
468 KB |
Output is correct |
4 |
Correct |
50 ms |
600 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
184 ms |
540 KB |
Output is correct |
2 |
Correct |
197 ms |
768 KB |
Output is correct |
3 |
Correct |
185 ms |
1060 KB |
Output is correct |
4 |
Correct |
183 ms |
540 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
609 ms |
1352 KB |
Output is correct |
2 |
Correct |
711 ms |
1512 KB |
Output is correct |
3 |
Correct |
577 ms |
884 KB |
Output is correct |
4 |
Correct |
591 ms |
888 KB |
Output is correct |
5 |
Correct |
589 ms |
1184 KB |
Output is correct |
6 |
Correct |
588 ms |
1116 KB |
Output is correct |
7 |
Correct |
605 ms |
892 KB |
Output is correct |
8 |
Correct |
595 ms |
896 KB |
Output is correct |
9 |
Correct |
590 ms |
892 KB |
Output is correct |
10 |
Correct |
577 ms |
1364 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
0 ms |
344 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
0 ms |
344 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |