http://tjuacm.chaosheng.top/problem.php?id=1255
一开始没通过是因为访问不到url时就直接把cur设成ignored了,这样会导致“ignored”被当作url压入栈,改了之后就ac了。通过的代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <stack>
using namespace std;
stack<string> back;
stack<string> forw;
int main(){
string command, url, cur;
cur = "http://www.acm.org/";
while(cin >> command){
if(command == "QUIT") break;
if(command == "VISIT"){
cin >> url;
while(!forw.empty()) forw.pop();
back.push(cur);
cur = url;
cout << cur << endl;
}
if(command == "BACK"){
if(back.empty()){
cout << "Ignored" << endl;
}else{
string tmp = back.top();
back.pop();
forw.push(cur);
cur = tmp;
cout << cur << endl;
}
}
if(command == "FORWARD"){
if(forw.empty()){
cout << "Ignored" << endl;
}else{
string tmp = forw.top();
forw.pop();
back.push(cur);
cur = tmp;
cout << cur << endl;
}
}
}
return 0;
}一开始没通过的:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <stack>
using namespace std;
stack<string> back;
stack<string> forw;
int main(){
string command, url, cur;
cur = "http://www.acm.org/";
while(cin >> command){
if(command == "QUIT") break;
if(command == "VISIT"){
cin >> url;
while(!forw.empty()) forw.pop();
back.push(cur);
cur = url;
}
if(command == "BACK"){
if(back.empty()){
cur = "Ignored";
}else{
string tmp = back.top();
back.pop();
forw.push(cur);
cur = tmp;
}
}
if(command == "FORWARD"){
if(forw.empty()){
cur = "Ignored";
}else{
string tmp = forw.top();
forw.pop();
back.push(cur);
cur = tmp;
}
}
cout << cur << endl;
}
return 0;
}
京公网安备 11010502036488号