제출 #1303035

#제출 시각아이디문제언어결과실행 시간메모리
1303035duccnamm사육제 (CEOI14_carnival)C++20
100 / 100
7 ms436 KiB
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll n,b[200005],z;
ll ask (ll x,ll y)
{
    cout << y-x+1 << ' ';
    for (int i=x;i<=y;i++)
        cout << i << " ";
    cout << endl;
    ll sx;
    cin >> sx;
    return sx;
}
map<ll,ll>mp;
int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
//    freopen("nam.inp","r",stdin);
//    freopen("nam.out","w",stdout);
    cin >> n;
    b[1]=++z;
    for (int i=2;i<=n;i++)
    {
        ll ans=i;
        ll l=1;
        ll r=i-1;
        while (l<=r)
        {
            ll mid = (l+r)/2;
            ll sl = ask (mid,i);
            ll d = 0;
            for (int j=mid; j<i; j++)
                if ( mp[b[j]] == 0 )
                {
                    mp[b[j]] = 1;
                    d++;
                }
            mp.clear();
            if (d==sl)
                l = mid+1;
            else
            {
                ans = min (ans, mid);
                r = mid-1;
            }
        }
        if (ans == 1)
            b[i]= ++z;
        else
            b[i]= b[ans-1];
    }
    cout << 0 <<" ";
    for (int i=1;i<=n;i++)
        cout << b[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...