#include <iostream>
#include <algorithm>
using namespace std;
#define f first
#define s second
int main(){
    int N;cin>>N;
    int nC;
    cout<<N;
    for(int i=0;i<N;i++){
        cout<<" "<<i+1;
    }
    cout<<endl;
    cin>>nC;
    int cos[N];
    for(int i=0;i<N;i++){
        cos[i]=i;
    }
    for(int i=0;i<N;i++){
        for(int j=i+1;j<N;j++){
            if(nC==N)break;
            if(cos[i]!=i)continue;
            cout<<2<<" "<<i+1<<" "<<j+1<<endl;
            int r;cin>>r;
            if(r==1){
                cos[j]=i;
            }
        }
        if(nC==N)break;
    }
    cout<<0;
    pair<int,int> co[N];
    for(int i=0;i<N;i++){
        co[i].f=cos[i];
        co[i].s=i;
    }
    sort(co,co+N);
    int bef=-1;
    int cnt=0;
    for(int i=0;i<N;i++){
        if(bef!=co[i].f){
            cnt++;
            bef=co[i].f;
        }
        co[i].f=co[i].s;
        co[i].s=cnt;
    }
    sort(co,co+N);
    for(int i=0;i<N;i++){
        cout<<" "<<co[i].s;
    }
    cout<<endl;
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |