TTRAVEL - Time Travel
Tác giả: hieult
Ngôn ngữ: C++
#include <iostream>
#include <cstring>
//#include <conio.h>
using namespace std;
long equal1[100005];
long trace[100005];
long print[100005];
long n,k;
char c;
int init(){
equal1[0]=0; equal1[1]=1;
trace[0]=-1; trace[1]=0;
print[0]=-1; print[1]=-1;
}
int main(){
//
//freopen("input.txt","r",stdin);
//freopen("output.txt","w",stdout);
//
init();
scanf("%d",&n);
for (int i=2; i<=n+1; i++){
do {
scanf ("%c", &c);
} while (c != 'a' && c != 's' && c != 't');
if (c=='a'){
scanf("%d",&k);
equal1[i]=i;
trace[i]=equal1[i-1];
print[i]=k;
}else if (c=='s'){
equal1[i]=equal1[trace[i-1]];
trace[i]=trace[trace[i-1]];
print[i]=print[trace[i-1]];
}else {
scanf("%d",&k);
equal1[i]=equal1[k];
trace[i]=trace[k];
print[i]=print[k];
}
printf("%d\n",print[i]);
}
//test
/*
for (int i=0; i<=n+1; i++){
cout<<equal1[i]<<" ";
}
cout<<endl;
for (int i=0; i<=n+1; i++){
cout<<trace[i]<<" ";
}
cout<<endl;
for (int i=0; i<=n+1; i++){
cout<<print[i]<<" ";
}
cout<<endl;
*/
//
//getch();
}