题目:
思路分析:
简单的模拟题!
代码实现:
/*
*@Author: GuoJinlong
*@Language: C++
*/
//#include <bits/stdc++.h>
/*
* __----~~~~~~~~~~~------___
* . . ~~//====...... __--~ ~~
* -. \_|// |||\\ ~~~~~~::::... /~
* ___-==_ _-~o~ \/ ||| \\ _/~~-
* __---~~~.==~||\=_ -_--~/_-~|- |\\ \\ _/~
* _-~~ .=~ | \\-_ '-~7 /- / || \ /
* .~ .~ | \\ -_ / /- / || \ /
* / ____ / | \\ ~-_/ /|- _/ .|| \ /
* |~~ ~~|--~~~~--_ \ ~==-/ | \~--===~~ .\
* ' ~-| /| |-~\~~ __--~~
* |-~~-_/ | | ~\_ _-~ /\
* / \ \__ \/~ \__
* _--~ _/ | .-~~____--~-/ ~~==.
* ((->/~ '.|||' -_| ~~-/ , . _||
* -_ ~\ ~~---l__i__i__i--~~_/
* _-~-__ ~) \--______________--~~
* //.-~~~-~_--~- |-------~~~~~~~~
* //.-~~~--\
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*
* 神兽保佑 永无BUG
*/
const int MAX=1e5+10;
map<int,int>mp;
vector<int>v[MAX];
int main(){
int n,m;
cin>>n>>m;
int now=1;
for(int i=1;i<=n;i++){
int k;
cin>>k;
while (k--) {
int x;
cin>>x;
v[i].push_back(x);
}
}
while (m--) {
int o;
cin>>o;
if(o==0){
int x;
cin>>x;
now=v[now][x-1];
}
else if(o==1){
int x;
cin>>x;
mp[x]=now;
cout<<now<<endl;
}
else{
int x;
cin>>x;
now=mp[x];
}
}
cout<<now;
}