#include <bits/stdc++.h>
#define rep(i,n)for(int i=0;i<(n);i++)
using namespace std;
#include "koala.h"
int B[200],R[200];
int minValue(int N, int W) {
memset(B,0,sizeof(B));
B[0]=1;
playRound(B,R);
rep(i,N){
if(B[i]>=R[i])return i;
}
return -1;
}
int maxValue(int N, int W) {
rep(i,N){
B[i]=1;
}
playRound(B,R);
vector<int>v;
rep(i,N){
if(R[i]>1){
v.push_back(i);
}
}
while(v.size()>1){
memset(B,0,sizeof(B));
int ave=W/v.size();
for(int i:v)B[i]=ave;
playRound(B,R);
vector<int>u;
for(int i:v){
if(R[i]>B[i])u.push_back(i);
}
v=u;
}
return v[0];
}
map<pair<int,int>,bool>mp;
bool cmp(int a,int b,int W=100){
if(mp.count({a,b}))return mp[{a,b}];
if(mp.count({b,a}))return !mp[{b,a}];
int l=1,r=min(W/2,9);
while(1){
int t=(l+r)/2;
memset(B,0,sizeof(B));
B[a]=B[b]=t;
playRound(B,R);
bool f0=(B[a]<R[a]),f1=(B[b]<R[b]);
if(f0^f1){
if(f0)return mp[{a,b}]=0;
return mp[{a,b}]=1;
}
if(!f0)r=t-1;
else l=t+1;
}
}
bool cmp2(int a,int b,int W){
if(a==-1)return 0;
if(b==-1)return 1;
if(mp.count({a,b}))return mp[{a,b}];
if(mp.count({b,a}))return !mp[{b,a}];
memset(B,0,sizeof(B));
B[a]=B[b]=W/2;
playRound(B,R);
return mp[{a,b}]=(B[a]>=R[a]);
}
int greaterValue(int N, int W) {
mp.clear();
if(cmp(0,1,W))return 1;
return 0;
}
void allValues(int N, int W, int *P) {
if (W == 2*N) {
mp.clear();
vector<int>v;
rep(i,N)v.push_back(i);
stable_sort(v.begin(),v.end(),[&](int a,int b){return cmp2(a,b,W);});
rep(i,v.size()){
if(v[i]!=-1)P[v[i]]=i+1;
}
}
else {
mp.clear();
vector<int>v;
rep(i,N)v.push_back(i);
sort(v.begin(),v.end(),[&](int a,int b){return cmp(a,b,W);});
rep(i,v.size()){
P[v[i]]=i+1;
}
}
}
Compilation message
koala.cpp: In function 'void allValues(int, int, int*)':
koala.cpp:2:30: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
#define rep(i,n)for(int i=0;i<(n);i++)
^
koala.cpp:84:3: note: in expansion of macro 'rep'
rep(i,v.size()){
^~~
koala.cpp:2:30: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
#define rep(i,n)for(int i=0;i<(n);i++)
^
koala.cpp:93:3: note: in expansion of macro 'rep'
rep(i,v.size()){
^~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
8 ms |
384 KB |
Output is correct |
2 |
Correct |
7 ms |
384 KB |
Output is correct |
3 |
Correct |
8 ms |
384 KB |
Output is correct |
4 |
Correct |
8 ms |
384 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
14 ms |
424 KB |
Output is correct |
2 |
Correct |
14 ms |
384 KB |
Output is correct |
3 |
Correct |
17 ms |
380 KB |
Output is correct |
4 |
Correct |
14 ms |
384 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
61 ms |
356 KB |
Output is correct |
2 |
Correct |
74 ms |
428 KB |
Output is correct |
3 |
Correct |
57 ms |
504 KB |
Output is correct |
4 |
Correct |
56 ms |
420 KB |
Output is correct |
5 |
Correct |
56 ms |
384 KB |
Output is correct |
6 |
Correct |
56 ms |
504 KB |
Output is correct |
7 |
Correct |
56 ms |
384 KB |
Output is correct |
8 |
Correct |
59 ms |
384 KB |
Output is correct |
9 |
Correct |
52 ms |
604 KB |
Output is correct |
10 |
Correct |
52 ms |
384 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
20 ms |
384 KB |
Output is correct |
2 |
Correct |
35 ms |
412 KB |
Output is correct |
3 |
Correct |
43 ms |
432 KB |
Output is correct |
4 |
Correct |
32 ms |
384 KB |
Output is correct |
5 |
Correct |
35 ms |
384 KB |
Output is correct |
6 |
Correct |
40 ms |
384 KB |
Output is correct |
7 |
Correct |
32 ms |
512 KB |
Output is correct |
8 |
Correct |
32 ms |
384 KB |
Output is correct |
9 |
Correct |
44 ms |
384 KB |
Output is correct |
10 |
Correct |
33 ms |
384 KB |
Output is correct |
11 |
Correct |
49 ms |
384 KB |
Output is correct |
12 |
Correct |
16 ms |
384 KB |
Output is correct |
13 |
Correct |
47 ms |
384 KB |
Output is correct |
14 |
Correct |
38 ms |
504 KB |
Output is correct |
15 |
Correct |
34 ms |
384 KB |
Output is correct |
16 |
Correct |
34 ms |
384 KB |
Output is correct |
17 |
Correct |
31 ms |
384 KB |
Output is correct |
18 |
Correct |
32 ms |
384 KB |
Output is correct |
19 |
Correct |
47 ms |
384 KB |
Output is correct |
20 |
Correct |
30 ms |
404 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Partially correct |
22 ms |
384 KB |
Output is partially correct |
2 |
Partially correct |
34 ms |
384 KB |
Output is partially correct |
3 |
Partially correct |
29 ms |
384 KB |
Output is partially correct |
4 |
Partially correct |
39 ms |
504 KB |
Output is partially correct |
5 |
Partially correct |
35 ms |
476 KB |
Output is partially correct |
6 |
Partially correct |
31 ms |
384 KB |
Output is partially correct |
7 |
Partially correct |
33 ms |
384 KB |
Output is partially correct |
8 |
Partially correct |
34 ms |
428 KB |
Output is partially correct |
9 |
Partially correct |
31 ms |
384 KB |
Output is partially correct |
10 |
Partially correct |
45 ms |
384 KB |
Output is partially correct |
11 |
Partially correct |
46 ms |
384 KB |
Output is partially correct |
12 |
Partially correct |
21 ms |
384 KB |
Output is partially correct |
13 |
Partially correct |
34 ms |
384 KB |
Output is partially correct |
14 |
Partially correct |
29 ms |
384 KB |
Output is partially correct |
15 |
Partially correct |
35 ms |
420 KB |
Output is partially correct |
16 |
Partially correct |
37 ms |
384 KB |
Output is partially correct |
17 |
Partially correct |
37 ms |
384 KB |
Output is partially correct |
18 |
Partially correct |
36 ms |
504 KB |
Output is partially correct |
19 |
Partially correct |
28 ms |
384 KB |
Output is partially correct |
20 |
Partially correct |
30 ms |
512 KB |
Output is partially correct |
21 |
Partially correct |
43 ms |
384 KB |
Output is partially correct |
22 |
Partially correct |
50 ms |
512 KB |
Output is partially correct |
23 |
Partially correct |
39 ms |
384 KB |
Output is partially correct |
24 |
Partially correct |
44 ms |
384 KB |
Output is partially correct |
25 |
Partially correct |
33 ms |
384 KB |
Output is partially correct |
26 |
Partially correct |
36 ms |
384 KB |
Output is partially correct |
27 |
Partially correct |
38 ms |
384 KB |
Output is partially correct |
28 |
Partially correct |
36 ms |
396 KB |
Output is partially correct |
29 |
Partially correct |
37 ms |
512 KB |
Output is partially correct |
30 |
Partially correct |
32 ms |
476 KB |
Output is partially correct |
31 |
Partially correct |
41 ms |
356 KB |
Output is partially correct |
32 |
Partially correct |
32 ms |
384 KB |
Output is partially correct |
33 |
Partially correct |
34 ms |
384 KB |
Output is partially correct |
34 |
Partially correct |
26 ms |
384 KB |
Output is partially correct |
35 |
Partially correct |
46 ms |
384 KB |
Output is partially correct |
36 |
Partially correct |
34 ms |
512 KB |
Output is partially correct |
37 |
Partially correct |
30 ms |
384 KB |
Output is partially correct |
38 |
Partially correct |
35 ms |
384 KB |
Output is partially correct |
39 |
Partially correct |
32 ms |
384 KB |
Output is partially correct |
40 |
Partially correct |
39 ms |
384 KB |
Output is partially correct |