2010年10月2日土曜日

PKU Judge Online 1028 Web Navigation

■1028 Web Navigation

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

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

□Code
  1. package p1028;  
  2.   
  3. import java.util.*;  
  4. import java.lang.*;  
  5. import java.math.*;  
  6. import java.io.*;  
  7.   
  8. import static java.lang.Math.*;  
  9. import static java.util.Arrays.*;  
  10.   
  11. // AC  
  12. public class Main{  
  13.   
  14.     Scanner sc=new Scanner(System.in);  
  15.   
  16.     final int INF=Integer.MAX_VALUE;  
  17.     final double EPS=1e-9;  
  18.   
  19.     void run(){  
  20.         LinkedList<String> backward=new LinkedList<String>();  
  21.         LinkedList<String> forward=new LinkedList<String>();  
  22.         String url="http://www.acm.org/";  
  23.         for(;;){  
  24.             String[] ss=sc.nextLine().split(" ");  
  25.             String s=ss[0];  
  26.             if(s.equals("VISIT")){  
  27.                 backward.addFirst(url);  
  28.                 forward.clear();  
  29.                 url=ss[1];  
  30.                 println(url);  
  31.             }else if(s.equals("BACK")){  
  32.                 if(backward.size()==0)  
  33.                     println("Ignored");  
  34.                 else{  
  35.                     forward.addFirst(url);  
  36.                     url=backward.removeFirst();  
  37.                     println(url);  
  38.                 }  
  39.             }else if(s.equals("FORWARD")){  
  40.                 if(forward.size()==0)  
  41.                     println("Ignored");  
  42.                 else{  
  43.                     backward.addFirst(url);  
  44.                     url=forward.removeFirst();  
  45.                     println(url);  
  46.                 }  
  47.             }else if(s.equals("QUIT")){  
  48.                 break;  
  49.             }  
  50.         }  
  51.         System.out.flush();  
  52.     }  
  53.   
  54.     void print(String s){  
  55.         System.out.print(s);  
  56.     }  
  57.   
  58.     void println(String s){  
  59.         System.out.println(s);  
  60.     }  
  61.   
  62.     public static void main(String[] args){  
  63.         System.setOut(new PrintStream(new BufferedOutputStream(System.out)));  
  64.         new Main().run();  
  65.     }  
  66. }  

0 件のコメント: