Submission #1334453

#TimeUsernameProblemLanguageResultExecution timeMemory
1334453DangerNoodle7591Carnival (CEOI14_carnival)C++20
100 / 100
4 ms444 KiB
#include <bits/stdc++.h>
using namespace std;
#define lalala ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
#define N 400
#define pb push_back
#define ins insert


int renk[N];

int sorgu(set<int> st){
    cout<<st.size()<<" ";
    for(auto u:st)cout<<u<<" ";
    cout<<endl;
    int x;cin>>x;
    return x;
}


int binali(set<int> st){
    vector<int> v;
    for(auto u:st)v.pb(u);
    int l=0,r=v.size()-2;
    int yes=-1;
    while(l<=r){
        int mid=(l+r)/2;
        set<int> yed;
        for(int i=mid;i<v.size();i++)yed.ins(v[i]);
        int x=sorgu(yed);
        if(x==yed.size()){
            r=mid-1;
        }
        else {
            yes=v[mid];
            l=mid+1;
        }
    }
    return yes;
}


signed main(){
    lalala;
    int n;cin>>n;
    
    renk[1]=1;
    set<int> st;st.ins(1);
    for(int i=2;i<=n;i++){
        st.ins(i);
        int x=sorgu(st);
        if(x==st.size()){
            renk[i]=st.size();
        }
        else{
            renk[i]=renk[binali(st)];
            st.erase(i);
        }
        //for(int j=1;j<=n;j++)cout<<renk[j]<<" ";
        //cout<<endl;
    }
    cout<<0<<" ";
    for(int i=1;i<=n;i++)cout<<renk[i]<<" ";
    cout<<endl;
}
#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...