#include "koala.h"
#include <bits/stdc++.h>
using namespace std;
int minValue(int N, int W) {
int v[100]={0}, t[100]={0};
v[0]=1;
playRound(v, t);
if(t[0]<=1) return 0;
for(int i=1; i<100; i++) if(t[i]==0) return i;
}
int maxValue(int N, int W) {
int v[100]={0}, t[100]={0};
vector<int> c;
for(int i=0; i<100; i++) c.push_back(i);
for(int i=0; i<4; i++) {
if(c.size()==1) break;
vector<int> c2;
fill(v, v+100, 0);
for(int j:c) v[j]=100/c.size();
playRound(v, t);
for(int j:c) if(t[j]>(100/c.size())) c2.push_back(j);
c=c2;
}
return c[0];
}
int greaterValue(int N, int W) {
int v[100]={0}, t[100]={0};
v[0]=v[1]=4;
playRound(v, t);
if((t[0]>4)!=(t[1]>4)) return ((t[0]>4)<(t[1]>4));
if(t[0]>4) {
v[0]=v[1]=8;
playRound(v, t);
if((t[0]>8)!=(t[1]>8)) return ((t[0]>8)<(t[1]>8));
else if(t[0]>8) {
v[0]=v[1]=10;
playRound(v, t);
return ((t[0]>10)<(t[1]>10));
}
}
else {
v[0]=v[1]=3;
playRound(v, t);
if((t[0]>3)!=(t[1]>3)) return ((t[0]>3)<(t[1]>3));
else {
v[0]=v[1]=1;
playRound(v, t);
return ((t[0]>1)<(t[1]>1));
}
}
}
void F(int l, int r, vector<int> x, int *P) {
if(l==r) {
P[x[0]]=l;
return;
}
int v[100]={0}, t[100]={0};
for(int i=1; i<=100/(r-l+1); i++) {
int p=0, c=r-l+1, k=0;
for(int j=1; j<=r-l+1; j++) {
int sum=0; bool flag=true;
for(int q=0; q<i+1; q++) {
if(p+1<l && sum+(p+1)<=r-j+1) sum+=(++p);
else if(c) c--;
else flag=false;
}
if(flag) k=j;
}
if(!k || k==r-l+1) continue;
for(int j:x) v[j]=i;
playRound(v, t);
vector<int> xl, xr;
for(int j:x) {
if(t[j]>i) xr.push_back(j);
else xl.push_back(j);
}
F(l, l+xl.size()-1, xl, P), F(l+xl.size(), r, xr, P);
return;
}
}
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 {
vector<int> x;
int p=minValue(N, W);
P[p]=1;
for(int i=0; i<100; i++) if(i!=p) x.push_back(i);
F(2, 100, x, P);
}
}
Compilation message (stderr)
koala.cpp: In function 'int minValue(int, int)':
koala.cpp:11:1: warning: control reaches end of non-void function [-Wreturn-type]
11 | }
| ^
koala.cpp: In function 'int greaterValue(int, int)':
koala.cpp:54:1: warning: control reaches end of non-void function [-Wreturn-type]
54 | }
| ^
# | 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... |