이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#define DIM 200
using namespace std;
int v[DIM],w[DIM],sol[DIM],f[DIM];
int n,k,i,j,el;
int query (){
int ans;
cout<<el<<" ";
for (int i=1;i<=el;i++)
cout<<w[i]<<" ";
cout<<endl;
cin>>ans;
cout<<endl;
return ans;
}
int verif (int x, int y, int poz){
el = 0;
for (int i=x;i<=y;i++)
w[++el] = v[i];
w[++el] = poz;
if (query() == y-x+1)
return 1;
return 0;
}
int main (){
cin>>n;
v[++k] = 1;
f[1] = sol[1] = 1;
for (i=2;i<=n;i++){
/// mai intai verific daca e o culoare noua
el = 0;
for (j=1;j<=i;j++)
w[++el] = j;
int val = query ();
f[i] = val;
if (val > f[i-1]){
/// inseamna ca am o noua culoare
v[++k] = i;
sol[i] = k;
} else {
/// o caut binar ish in culorile deja existente
int st = 1, dr = k;
while (st <= dr){
int mid = (st+dr)>>1;
if (verif (mid,mid,i)){
sol[i] = mid;
break;
}
if (verif (st,mid,i))
dr = mid-1;
else st = mid+1;
}
}
}
cout<<"0 ";
for (i=1;i<=n;i++)
cout<<sol[i]<<" ";
cout<<endl;
return 0;
}
# | 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... |