#include "koala.h"
#include <bits/stdc++.h>
using namespace std;
int minValue(int N, int W) {
// TODO: Implement Subtask 1 solution here.
// You may leave this function unmodified if you are not attempting this
// subtask.
int b[N]={},r[N]={};
b[0]=1;
playRound(b,r);
if (r[0]<2) return 0;
else {
for (int i=1; i<N; i++){
if (r[i]<1) return i;
}
}
return 0;
}
int maxValue(int N, int W) {
// TODO: Implement Subtask 2 solution here.
// You may leave this function unmodified if you are not attempting this
// subtask.
vector <int> rem;
for (int i=0; i<N; i++) rem.push_back(i);
while (rem.size()>1){
int b[N]={},r[N]={};
for (auto&i:rem) b[i]=W/rem.size();
playRound(b,r);
vector <int> w;
for (int i=0; i<N; i++){
if (b[i]&&r[i]>b[i]) w.push_back(i);
}
rem=w;
}
return rem[0];
}
int greaterValue(int N, int W) {
// TODO: Implement Subtask 3 solution here.
// You may leave this function unmodified if you are not attempting this
// subtask.
int lb=1,rb=10;
while (lb<rb){
int m=(lb+rb)>>1;
int b[N]={},r[N]={};
b[0]=b[1]=m;
playRound(b,r);
if (r[0]<=b[0]&&r[1]<=b[1]) rb=m-1;
else if (r[0]>b[0]&&r[1]>b[1]) lb=m+1;
else if (r[0]>b[0]) return 0;
else return 1;
}
int b[N]={},r[N]={};
b[0]=b[1]=lb;
playRound(b,r);
if (r[0]>b[0]) return 0;
else return 1;
}
bool cmp(int x,int y){
int b[100]={},r[100]={};
b[x]=b[y]=100;
playRound(b,r);
return (r[x]<=b[x]);
}
vector <int> msort(vector <int> v){
if (v.size()==1) return v;
vector <int> f,s;
for (int i=0; i<v.size(); i++){
if (i<(v.size()+1)/2) f.push_back(v[i]);
else s.push_back(v[i]);
}
f=msort(f);
s=msort(s);
vector <int> ans;
int p1=0,p2=0;
while (p1<f.size()&&p2<s.size()){
if (cmp(f[p1],s[p2])){
ans.push_back(f[p1]);
p1++;
} else {
ans.push_back(s[p2]);
p2++;
}
}
for (int i=p1; i<f.size(); i++) ans.push_back(f[i]);
for (int i=p2; i<s.size(); i++) ans.push_back(s[i]);
return ans;
}
bool cmp1(int x,int y){
int lb=1,rb=10;
while (lb<rb){
int m=(lb+rb)>>1;
int b[100]={},r[100]={};
b[x]=b[y]=m;
playRound(b,r);
if (r[x]<=b[x]&&r[y]<=b[y]) rb=m-1;
else if (r[x]>b[x]&&r[y]>b[y]) lb=m+1;
else if (r[x]>b[x]) return 0;
else return 1;
}
int b[100]={},r[100]={};
b[x]=b[y]=lb;
playRound(b,r);
if (r[x]>b[x]) 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.
vector <int> v(N);
for (int i=0; i<N; i++) v[i]=i;
vector <int> ans=msort(v);
for (int i=0; i<N; i++) P[ans[i]]=i+1;
} else {
// TODO: Implement Subtask 5 solution here.
// You may leave this block unmodified if you are not attempting this
// subtask.
vector <int> v(N);
for (int i=0; i<N; i++) v[i]=i;
sort(v.begin(),v.end(),cmp1);
for (int i=0; i<N; i++) P[v[i]]=i+1;
}
}
Compilation message
koala.cpp: In function 'std::vector<int> msort(std::vector<int>)':
koala.cpp:71:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
71 | for (int i=0; i<v.size(); i++){
| ~^~~~~~~~~
koala.cpp:72:8: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
72 | if (i<(v.size()+1)/2) f.push_back(v[i]);
| ~^~~~~~~~~~~~~~~
koala.cpp:79:11: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
79 | while (p1<f.size()&&p2<s.size()){
| ~~^~~~~~~~~
koala.cpp:79:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
79 | while (p1<f.size()&&p2<s.size()){
| ~~^~~~~~~~~
koala.cpp:88:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
88 | for (int i=p1; i<f.size(); i++) ans.push_back(f[i]);
| ~^~~~~~~~~
koala.cpp:89:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
89 | for (int i=p2; i<s.size(); i++) ans.push_back(s[i]);
| ~^~~~~~~~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
6 ms |
492 KB |
Output is correct |
2 |
Correct |
6 ms |
364 KB |
Output is correct |
3 |
Correct |
6 ms |
364 KB |
Output is correct |
4 |
Correct |
6 ms |
372 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
18 ms |
364 KB |
Output is correct |
2 |
Correct |
19 ms |
364 KB |
Output is correct |
3 |
Correct |
18 ms |
364 KB |
Output is correct |
4 |
Correct |
18 ms |
364 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
80 ms |
492 KB |
Output is correct |
2 |
Correct |
86 ms |
492 KB |
Output is correct |
3 |
Correct |
73 ms |
492 KB |
Output is correct |
4 |
Correct |
71 ms |
492 KB |
Output is correct |
5 |
Correct |
71 ms |
364 KB |
Output is correct |
6 |
Correct |
72 ms |
364 KB |
Output is correct |
7 |
Correct |
71 ms |
492 KB |
Output is correct |
8 |
Correct |
72 ms |
364 KB |
Output is correct |
9 |
Correct |
72 ms |
364 KB |
Output is correct |
10 |
Correct |
70 ms |
364 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
29 ms |
364 KB |
Output is correct |
2 |
Correct |
46 ms |
364 KB |
Output is correct |
3 |
Correct |
45 ms |
492 KB |
Output is correct |
4 |
Correct |
48 ms |
364 KB |
Output is correct |
5 |
Correct |
43 ms |
364 KB |
Output is correct |
6 |
Correct |
44 ms |
364 KB |
Output is correct |
7 |
Correct |
44 ms |
492 KB |
Output is correct |
8 |
Correct |
44 ms |
364 KB |
Output is correct |
9 |
Correct |
44 ms |
364 KB |
Output is correct |
10 |
Correct |
42 ms |
364 KB |
Output is correct |
11 |
Correct |
44 ms |
364 KB |
Output is correct |
12 |
Correct |
25 ms |
364 KB |
Output is correct |
13 |
Correct |
45 ms |
364 KB |
Output is correct |
14 |
Correct |
40 ms |
364 KB |
Output is correct |
15 |
Correct |
41 ms |
492 KB |
Output is correct |
16 |
Correct |
38 ms |
364 KB |
Output is correct |
17 |
Correct |
38 ms |
364 KB |
Output is correct |
18 |
Correct |
40 ms |
364 KB |
Output is correct |
19 |
Correct |
40 ms |
492 KB |
Output is correct |
20 |
Correct |
40 ms |
396 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Partially correct |
43 ms |
364 KB |
Output is partially correct |
2 |
Partially correct |
52 ms |
364 KB |
Output is partially correct |
3 |
Partially correct |
48 ms |
492 KB |
Output is partially correct |
4 |
Partially correct |
48 ms |
364 KB |
Output is partially correct |
5 |
Partially correct |
56 ms |
364 KB |
Output is partially correct |
6 |
Partially correct |
48 ms |
364 KB |
Output is partially correct |
7 |
Partially correct |
48 ms |
364 KB |
Output is partially correct |
8 |
Partially correct |
51 ms |
364 KB |
Output is partially correct |
9 |
Partially correct |
52 ms |
364 KB |
Output is partially correct |
10 |
Partially correct |
45 ms |
364 KB |
Output is partially correct |
11 |
Partially correct |
49 ms |
364 KB |
Output is partially correct |
12 |
Partially correct |
33 ms |
492 KB |
Output is partially correct |
13 |
Partially correct |
50 ms |
364 KB |
Output is partially correct |
14 |
Partially correct |
47 ms |
364 KB |
Output is partially correct |
15 |
Partially correct |
47 ms |
364 KB |
Output is partially correct |
16 |
Partially correct |
50 ms |
364 KB |
Output is partially correct |
17 |
Partially correct |
56 ms |
364 KB |
Output is partially correct |
18 |
Partially correct |
54 ms |
364 KB |
Output is partially correct |
19 |
Partially correct |
47 ms |
364 KB |
Output is partially correct |
20 |
Partially correct |
50 ms |
492 KB |
Output is partially correct |
21 |
Partially correct |
47 ms |
364 KB |
Output is partially correct |
22 |
Partially correct |
52 ms |
492 KB |
Output is partially correct |
23 |
Partially correct |
40 ms |
364 KB |
Output is partially correct |
24 |
Partially correct |
52 ms |
364 KB |
Output is partially correct |
25 |
Partially correct |
52 ms |
364 KB |
Output is partially correct |
26 |
Partially correct |
52 ms |
364 KB |
Output is partially correct |
27 |
Partially correct |
50 ms |
364 KB |
Output is partially correct |
28 |
Partially correct |
50 ms |
364 KB |
Output is partially correct |
29 |
Partially correct |
49 ms |
364 KB |
Output is partially correct |
30 |
Partially correct |
49 ms |
364 KB |
Output is partially correct |
31 |
Partially correct |
48 ms |
492 KB |
Output is partially correct |
32 |
Partially correct |
50 ms |
364 KB |
Output is partially correct |
33 |
Partially correct |
50 ms |
364 KB |
Output is partially correct |
34 |
Partially correct |
44 ms |
364 KB |
Output is partially correct |
35 |
Partially correct |
50 ms |
492 KB |
Output is partially correct |
36 |
Partially correct |
47 ms |
364 KB |
Output is partially correct |
37 |
Partially correct |
49 ms |
364 KB |
Output is partially correct |
38 |
Partially correct |
48 ms |
364 KB |
Output is partially correct |
39 |
Partially correct |
51 ms |
492 KB |
Output is partially correct |
40 |
Partially correct |
51 ms |
492 KB |
Output is partially correct |