A4301. 操作大师
编程题
入门
知识点
题目描述
Gold King 想只用键盘实现浏览器的前进、后退、访问功能。浏览器历史记录的行为定义如下:
1. **访问**
- 如果当前历史记录中有“前进”的记录(即当前浏览位置之后还有记录),则将这些记录全部清除。
- 将给定的网址添加到历史记录末尾,并访问该网址(即当前浏览位置移动到新网址)。
- 输出该网址。
2. **后退**
- 如果当前浏览位置之前有历史记录,则后退到前一个网址。
- 输出后退后的网址。
- 如果已经是历史记录的第一个网址,则忽略该操作,输出
3. **前进**
- 如果上一步操作是 **访问(v)**,则忽略本次前进操作,输出
- 否则(上一步是后退或前进),如果当前浏览位置之后有历史记录,则前进到下一个网址,并输出该网址。
- 如果当前已经是最后一条记录,则忽略该操作,输出
注意:
- 输入保证每条操作格式正确,网址不含空格或不可见字符。
- 初始状态下没有历史记录。
1. **访问**
- 如果当前历史记录中有“前进”的记录(即当前浏览位置之后还有记录),则将这些记录全部清除。
- 将给定的网址添加到历史记录末尾,并访问该网址(即当前浏览位置移动到新网址)。
- 输出该网址。
2. **后退**
- 如果当前浏览位置之前有历史记录,则后退到前一个网址。
- 输出后退后的网址。
- 如果已经是历史记录的第一个网址,则忽略该操作,输出
?。3. **前进**
- 如果上一步操作是 **访问(v)**,则忽略本次前进操作,输出
?。 - 否则(上一步是后退或前进),如果当前浏览位置之后有历史记录,则前进到下一个网址,并输出该网址。
- 如果当前已经是最后一条记录,则忽略该操作,输出
?。注意:
- 输入保证每条操作格式正确,网址不含空格或不可见字符。
- 初始状态下没有历史记录。
输入格式
第一行输入一个正整数m,表示有m条操作;
接下来输入 m 行,每行表示一个操作,
前进用一个字母 f 表示;
后退用一个字母 b 表示;
访问用一个字母 v 开头,后面接一条网址,(保证该网址中间没有空格或者其他不可见字符)。
接下来输入 m 行,每行表示一个操作,
前进用一个字母 f 表示;
后退用一个字母 b 表示;
访问用一个字母 v 开头,后面接一条网址,(保证该网址中间没有空格或者其他不可见字符)。
输出格式
输出共 m 行,分别对应每一个操作,
如果浏览器访问了某个网址,则输出该网址;
如果浏览器忽略了这部操作,则输出一个"?"。
如果浏览器访问了某个网址,则输出该网址;
如果浏览器忽略了这部操作,则输出一个"?"。
输入输出样例
输入 #1
4 v xiaomawang.com v xiaoma.wang b f
输出 #1
xiaomawang.com xiaoma.wang xiaomawang.com xiaoma.wang
输入 #2
5 v xiaoma.com.cn b f v www.xiaomawang.com f
输出 #2
xiaoma.com.cn ? ? www.xiaomawang.com ?
说明/提示
$1 \le m \le 2\times10^5$