2010年10月2日土曜日

PKU Judge Online 1028 Web Navigation

■1028 Web Navigation

□Problem
ウェブブラウザのシミュレーションを行え.命令は以下のとおりである.
BACK: 前のページに戻る.
FORWARD: 次のページに進む.
VISIT: 指定されたURLにジャンプ.
QUIT: ブラウザを終了する.

□Solution
閲覧したページをリストに格納しておけばOK.

□Code
package p1028;

import java.util.*;
import java.lang.*;
import java.math.*;
import java.io.*;

import static java.lang.Math.*;
import static java.util.Arrays.*;

// AC
public class Main{

Scanner sc=new Scanner(System.in);

final int INF=Integer.MAX_VALUE;
final double EPS=1e-9;

void run(){
LinkedList<String> backward=new LinkedList<String>();
LinkedList<String> forward=new LinkedList<String>();
String url="http://www.acm.org/";
for(;;){
String[] ss=sc.nextLine().split(" ");
String s=ss[0];
if(s.equals("VISIT")){
backward.addFirst(url);
forward.clear();
url=ss[1];
println(url);
}else if(s.equals("BACK")){
if(backward.size()==0)
println("Ignored");
else{
forward.addFirst(url);
url=backward.removeFirst();
println(url);
}
}else if(s.equals("FORWARD")){
if(forward.size()==0)
println("Ignored");
else{
backward.addFirst(url);
url=forward.removeFirst();
println(url);
}
}else if(s.equals("QUIT")){
break;
}
}
System.out.flush();
}

void print(String s){
System.out.print(s);
}

void println(String s){
System.out.println(s);
}

public static void main(String[] args){
System.setOut(new PrintStream(new BufferedOutputStream(System.out)));
new Main().run();
}
}

0 件のコメント: