제출 #1340174

#제출 시각아이디문제언어결과실행 시간메모리
1340174dosts사육제 (CEOI14_carnival)C++20
100 / 100
10 ms476 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define sp <<" "<<
//#define endl '\n'
#define all(x) x.begin(),x.end()
int inf = 2e18;
const int MOD=1000000007;
int ask(vector<int>g)
{
    cout<<g.size()<<" ";
    for(auto el:g)cout<<el<<" ";
    cout<<endl;
    int a;
    cin>>a;
    return a;
}
void solve()
{
    int n;
    cin>>n;
    vector<int>sonr(n,-1);
    for(int i=0;i<n;i++)
    {
        int r=n-1,l=i+1;
        while(r>=l)
        {
            int m=(l+r)/2;
            vector<int>msg;
            for(int j=i;j<=m;j++)msg.push_back(j+1);
            int a=ask(msg);
            msg.erase(msg.begin());
            int b=ask(msg);
            if(a==b)r=m-1;
            else l=m+1;
        }
        sonr[i]=l;
    }
    int aktifr=1;
    vector<int>renk(n);
    for(int i=n-1;i>=0;i--)
    {
        if(sonr[i]==n)
        {
            renk[i]=aktifr;
            aktifr++;
            continue;
        }
        renk[i]=renk[sonr[i]];
    }
    cout<<"0 ";
    for(int i=0;i<n;i++)
    {
        cout<<renk[i]<<" ";
    }
    cout<<endl;
}
signed main()
{
    ios_base::sync_with_stdio(0);
    //freopen("in.txt", "r", stdin);
    //freopen("out.txt", "w", stdout);   
    int t=1;
    //cin>>t;
    //#else
        //freopen("snakes.in", "r", stdin);
        //freopen("snakes.out", "w", stdout);    
    while(t--)solve();
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...