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();
}

Download