多个循环会超时,怎么改啊
#include <bits/stdc++.h>
using namespace std;
list<int> a(1,1);
list<int> ::iterator it=a.begin();
int f,x,y,n;
bool flag;
//void print(){
// for(it=a.begin();it!=a.end();it++)
// cout<<*it<<" ";
// cout<<endl;
//}
int main(){
cin>>n;
while(n--){
cin>>f;
it=a.begin();
if(f==1){
cin>>x>>y;
while(1){
if(*it==x){
a.insert(++it,y);
break;
}
it++;
}
}else if(f==2){
flag=false;
cin>>x;
while(1){
if(*it==x){
it++;
cout<<*it<<endl;
flag=true;
break;
}
it++;
}
if(!flag)
cout<<0<<endl;
}else{
cin>>x;
while(1){
if(*it==x){
it++;
a.erase(it);
break;
}
it++;
}
}
}
// print();
return 0;
}