题目名称:跳跃浏览器 测评方式 标准输入输出 时间限制 1000ms 内存限制 256MB 题目描述 输入相应操作,模拟实现一个跳跃式浏览器程序,支持以下操作:
输入1,表示打开新网址,跳转浏览该网页,并将该网页编号(从1开始递增)加入历史记录中。当达到最大容量时,自动删除最早的记录。
输入2以及 k 1 k1,表示点击前进按钮,跳转浏览并输出下面第 k k1个网页编号(不用重复加入历史记录)。如果没有下 k 1 k1个网页,则通过输出"Error: no forward history",表示禁用该按钮,此时浏览器页面不进行跳转。
输入3以及 k 2 k2,表示点击后退按钮,返回浏览并输出上面第 k 2 k2个网页编号(不用重复加入历史记录)。如果没有上 k 2 k2个网页,则通过输出"Error: no back history",表示禁用该按钮,此时浏览器页面不进行跳转。
输入4,表示点击退出按钮,清空历史记录。
输入描述 第一行一个整数 d d, 表示历史记录的容量;
接下来若干行每行输入一个操作符以及参数,操作符与参数之间以空格分隔;
输入以0结束。
输出描述 对于每一个操作2,输出网页编号或"Error: no forward history";
对于每一个操作3,输出网页编号或"Error: no back history";
每个操作输出之间以换行隔开。
样例1 输入复制 100000 1 1 1 1 1 1 3 2 3 1 4 2 2 1 1 1 3 3 2 1 3 2 0 输出 4 3 Error: no forward history Error: no back history Error: no forward history 7 样例2 输入复制 100000 3 2 1 1 1 3 2 2 1 4 1 1 3 1 2 1 3 2 0 输出 Error: no back history 1 2 4 5 Error: no back history
提示 20%的数据 k 1 k1 = k 2 k2 = 1;
100%的数据 1 < k 1 k1, k 2 k2 <= 10^5^,历史记录最大容量 d d <=10^5^,操作次数 <= 10^6^。那个大佬能告诉我这段代码哪里不对,能帮我改一下吗``` #include <bits/stdc++.h> using namespace std; vector history; int main() { int n; cin >> n; int cur = -1; while (true) { int x; cin >> x; if(x == 0){ break; } if(x == 1){ int neew; cin >> neew; if (history.size() == n){ history.erase(history.begin()); } history.push_back(neew); cur = history.size() - 1; }else if (x == 2){ int k; cin >> k; if (cur+k >= history.size()){ cout << "Error: no forward history" << endl; }else{ cur += k; cout << history[cur] << endl; } }else if (x == 3){ int k; cin >> k; if (cur-k < 0){ cout << "Error: no back history" << endl; } else { cur-= k; cout << history[cur] << endl; } } else if (x == 4) { history.clear(); cur = -1; } } return 0; }