蒜頭君每天都在用一款名爲“蒜廠瀏覽器”的軟件。在這個瀏覽器中,一共三種操作:打開頁面、回退和前進。它們的功能如下:
- 打開頁面:在地址欄中輸入網址,並跳轉到網址對應的頁面;
- 回退:返回到上一次訪問的頁面;
- 前進:返回到上次回退前的頁面,如果上一次操作是打開頁面,那麼將無法前進。
現在,蒜頭君打開瀏覽器,進行了一系列操作,你需要輸出他每次操作後所在頁面的網址。
輸入格式
第一行輸入一個整數 ,表示蒜頭君的操作次數。
接下來一共 行,每行首先輸入一個字符串,如果是 VISIT,後面接着輸入一個不含有空格和換行的網址(網址長度小於 ),表示蒜頭君在瀏覽器地址欄中輸入的網址;如果是 BACK,表示蒜頭君點擊了回退按鈕;如果是 FORWARD,表示蒜頭君點擊了前進按鈕。
輸出格式
對於每次操作,如果蒜頭君能操作成功,輸出蒜頭君操作之後的網址,否則輸出 Ignore。
假設蒜頭君輸入的所有網址都是合法的。
樣例輸入
10
VISIT https://www.jisuanke.com/course/476
VISIT https://www.taobao.com/
BACK
BACK
FORWARD
FORWARD
BACK
VISIT https://www.jisuanke.com/course/429
FORWARD
BACK
樣例輸出
https://www.jisuanke.com/course/476
https://www.taobao.com/
https://www.jisuanke.com/course/476
Ignore
https://www.taobao.com/
Ignore
https://www.jisuanke.com/course/476
https://www.jisuanke.com/course/429
Ignore
https://www.jisuanke.com/course/476
代碼
#include <iostream>
#include <cstdio>
#include <stack>
#include <algorithm>
using namespace std;
stack<string>a;
stack<string>b;
int main()
{
int n;
cin>>n;
while(n--)
{
string op,ws;
cin>>op;
if(op=="VISIT" )
{
cin>>ws;
a.push(ws);
stack<string>x;
{
swap(x,b);
}
cout<<a.top();
}
if(op=="BACK")
{
if(a.empty() )
{
cout<<"Ignore";
}
else
{
b.push(a.top() );
a.pop() ;
if(a.empty() )
{
cout<<"Ignore";
a.push(b.top());
b.pop() ;
goto aaa;
}
cout<<a.top() ;
}
}
if(op=="FORWARD")
{
if(b.empty() )
{
cout<<"Ignore";
}
else
{
a.push(b.top() );
b.pop() ;
cout<<a.top() ;
}
}
aaa: if(n!=0)
cout<<endl;
}
return 0;
}