rt,P2790
#include<bits/stdc++.h>
using namespace std;
vector<int>a[300];
int num[300],h[300];
void shuchu(int i){
if(a[i].empty()){
return;
}
int t=a[i].back();
a[i].pop_back();
shuchu(i);
cout<<t<<" ";
}
void fangzhi(int an,int ah,int bn,int bh){
if(a[an].size()<ah){
return;
}
int t=a[an].back();
a[an].pop_back();
fangzhi(an,ah,bn,bh);
a[bn].push_back(t);
}
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
a[i].push_back(i);
num[i]=i;
h[i]=1;
}
while(1){
string c1,c2;
int st,en;
cin>>c1;
if(c1=="quit"){
break;
}
cin>>st>>c2>>en;
if(c1=="move"){
if(c2=="onto"){
int ah=h[st],an=num[st],bh=h[en],bn=num[en];
while(a[an].size()>ah){
int t=a[an].back();
a[t].push_back(t);
a[an].pop_back();
num[t]=t;
h[t]=a[t].size();
}
while(a[bn].size()>bh){
int t=a[bn].back();
a[t].push_back(t);
a[bn].pop_back();
num[t]=t;
h[t]=a[t].size();
}
a[bn].push_back(a[an].back());
a[an].pop_back();
num[an]=bn;
h[an]=a[bn].size();
}else{
int ah=h[st],an=num[st],bh=h[en],bn=num[en];
while(a[an].size()>ah){
int t=a[an].back();
a[t].push_back(t);
a[an].pop_back();
num[t]=t;
h[t]=a[t].size();
}
a[bn].push_back(a[an].back());
a[an].pop_back();
num[an]=bn;
h[an]=a[bn].size();
}
}else{
if(c2=="onto"){
int ah=h[st],an=num[st],bh=h[en],bn=num[en];
while(a[bn].size()>bh){
int t=a[bn].back();
a[t].push_back(t);
a[bn].pop_back();
num[t]=t;
h[t]=a[t].size();
}
fangzhi(num[st],h[st],num[en],h[en]);
}else{
fangzhi(num[st],h[st],num[en],h[en]);
}
}
}
for(int i=0;i<n;i++){
cout<<i<<": ";
shuchu(i);
cout<<endl;
}
return 0;
}
求大佬指出