Submission #235578

#TimeUsernameProblemLanguageResultExecution timeMemory
235578Andrei_CotorCarnival (CEOI14_carnival)C++11
100 / 100
16 ms384 KiB
#include<iostream>

using namespace std;

int nrg;
int G[155],Rez[155];

bool group(int dr, int x) //returneaza 1 daca grupa lui x este una din grupele [1,dr]
{
    cout<<dr+1<<" ";
    for(int i=1; i<=dr; i++)
        cout<<G[i]<<" ";

    cout<<x<<endl;

    int len;
    cin>>len;
    if(len<dr+1)
        return 1;
    return 0;
}

int src(int x)
{
    int rez=0;
    for(int i=7; i>=0; i--)
    {
        if(rez+(1<<i)<nrg && !group(rez+(1<<i),x))
            rez+=(1<<i);
    }

    rez++;
    return rez;
}

int main()
{
    int n;
    cin>>n;

    int last=0;
    for(int i=1; i<=n; i++)
    {
        cout<<i<<" ";
        for(int j=1; j<=i; j++)
            cout<<j<<" ";
        cout<<endl;

        int len;
        cin>>len;
        
        if(len!=last)
        {
            nrg++;
            G[nrg]=i;
            Rez[i]=nrg;
        }

        last=len;
    }

    for(int i=1; i<=n; i++)
    {
        if(!Rez[i])
        {
            Rez[i]=src(i);
        }
    }

    cout<<"0 ";
    for(int i=1; i<=n; i++)
        cout<<Rez[i]<<" ";
    cout<<endl;
    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...