#include<bits/stdc++.h>
using namespace std;
vector<long long> c;
vector<long long> f;
long long n,a,b[111111];
int main(){
cin>>n;
for(int i=1;i<=1<<n;i++){
cin>>a;
b[a]=i;
c.push_back(a);
}
for(int i=n;i>=2;i--){
cout<<c.size()<<endl;
for(int j=1;j<=1<<i;j+=2){
int d=c.front();
c.erase(c.begin());
int e=c.front();
c.erase(c.begin());
f.push_back(max(d,e));
}
vector<long long>::iterator it;
c.clear();
for(it=f.begin();it!=f.end();it++)c.push_back(*it);
for(it=f.begin();it!=f.end();it++)cout<<*it<<' ';
cout<<endl;
f.clear();
}
int d=c.front();
c.erase(c.begin());
int e=c.front();
cout<<b[min(d,e)]<<endl;
return 0;
}
为什么会RE???