2010年7月9日金曜日

TopCoder 練習

RouteIntersection(Member SRM 474 DIV1 Easy)

  1. import java.util.*;  
  2. import java.lang.*;  
  3. import java.math.*;  
  4. import static java.lang.Math.*;  
  5. import static java.util.Arrays.*;  
  6.   
  7. public class RouteIntersection {  
  8.  public String isValid(int N, int[] coords, String moves) {  
  9.   TreeSet<Integer> set=new TreeSet<Integer>();  
  10.   int len=coords.length;  
  11.   for(int a:coords)  
  12.    set.add(a);  
  13.   int n=set.size();  
  14.   HashMap<Integer,Integer> map=new HashMap<Integer,Integer>();  
  15.   Iterator<Integer> it=set.iterator();  
  16.   for(int i=0;i<n;i++)  
  17.    map.put(it.next(),i);  
  18.   LinkedList<int[]> list=new LinkedList<int[]>();  
  19.   int[] p=new int[n];  
  20.   list.add(p);  
  21.   for(int i=0;i<len;i++){  
  22.    int[] q=new int[n];  
  23.    System.arraycopy(p,0,q,0,n);  
  24.    if(moves.charAt(i)=='+')  
  25.     q[map.get(coords[i])]++;  
  26.    else  
  27.     q[map.get(coords[i])]--;  
  28.    for(int[] a:list)  
  29.     if(Arrays.equals(a,q))  
  30.      return "NOT VALID";  
  31.    list.add(q);  
  32.    p=q;  
  33.   }  
  34.   return "VALID";  
  35.  }  
  36. }  
  37.   
  38.   
  39. // Powered by FileEdit  
  40. // Powered by TZTester 1.01 [25-Feb-2003]  
  41. // Powered by CodeProcessor  


API使いまくり.

0 件のコメント: