답안 #918261

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
918261 2024-01-29T13:54:12 Z Sputnik123 사육제 (CEOI14_carnival) C++14
0 / 100
1 ms 344 KB
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#include <string.h>
#include <stdio.h>
#include <algorithm>
#include <vector>
#include <functional>
#include <cstdio>
#define pb push_back
#define in insert
#define pll pair<ll,ll>
#define vpl vector<pll>
#define vll vector <ll>
#define vl vector<ll>
///#define mp make_pair
#define F first
#define S second
#define all(v) v.begin(),v.end()
#define endl "\n"
#define ll long long
#define ull unsigned long long
using namespace std;
using namespace __gnu_pbds;
#pragma GCC optimize("Ofast,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt,fma")
const ll sz=150;
const ll inf=1e12+7;
const ll mod=1e9+7;
const ll P=47;
const double e=1e-6;
ll gcd(ll x,ll y)
{
    return (y ? gcd(y,x%y) : x);
}
ll lcm(ll x,ll y)
{
    return (x/gcd(x,y))*y;
}
ll binpow(ll a,ll b)
{
    ll ans=1;
    a%=mod;
    while(b)
    {
        ans=(b&1 ? (ans*a)%mod : ans);
        a=(a*a)%mod;
        b>>=1;
    }
    return ans;
}
ll modm(ll n,ll m,ll md=mod)
{
    if(!m)  return 1;
    ll res=modm(n,m>>1,md);
    if(m&1) return res*res%md*n%md;
    return res*res%md;
}
/**************************/
int col[150],per[150];
int main ()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int n;
    cin>>n;
    col[1]=1;
    per[1]=1;
    int cur=1;
    for(int i=2;i<=n;i++)
    {
        cout<<cur+1<<" ";
        for(int j=1;j<=cur;j++)  cout<<per[j]<<" ";
        cout<<i<<endl;
        int res=0;
        cin>>res;
        if(res==cur+1)
        {
            col[i]=++cur;
            per[cur]=i;
            continue;
        }
        int l=1,r=cur;
        while(l<r)
        {
            int mid=(l+r)>>1;
            cout<<mid+1<<" ";
            for(int j=1;j<=mid;j++)
            {
                cout<<per[j]<<" ";
            }
            cout<<i<<endl;
            int res;
            cin>>res;
            if(res==mid+1)  l=mid+1;
            else            r=mid;
        }
        per[l]=i;
        col[i]=l;
    }
    cout<<0<<" ";
    for(int i=1;i<=n;i++)
    {
        cout<<col[i]<<" ";
    }
    cout<<endl;
}
/*

auto locate = [&](int x) -> int {
        for (int i = 0; i < n; i++)
            if (p[i] == x)
                return i;

        return -1;
    };
*/
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1 ms 344 KB Time limit exceeded (wall clock)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1 ms 344 KB Time limit exceeded (wall clock)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 0 ms 344 KB Time limit exceeded (wall clock)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1 ms 344 KB Time limit exceeded (wall clock)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 0 ms 344 KB Time limit exceeded (wall clock)
2 Halted 0 ms 0 KB -