2010年7月9日金曜日

TopCoder 練習

RouteIntersection(Member SRM 474 DIV1 Easy)

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

public class RouteIntersection {
public String isValid(int N, int[] coords, String moves) {
TreeSet<Integer> set=new TreeSet<Integer>();
int len=coords.length;
for(int a:coords)
set.add(a);
int n=set.size();
HashMap<Integer,Integer> map=new HashMap<Integer,Integer>();
Iterator<Integer> it=set.iterator();
for(int i=0;i<n;i++)
map.put(it.next(),i);
LinkedList<int[]> list=new LinkedList<int[]>();
int[] p=new int[n];
list.add(p);
for(int i=0;i<len;i++){
int[] q=new int[n];
System.arraycopy(p,0,q,0,n);
if(moves.charAt(i)=='+')
q[map.get(coords[i])]++;
else
q[map.get(coords[i])]--;
for(int[] a:list)
if(Arrays.equals(a,q))
return "NOT VALID";
list.add(q);
p=q;
}
return "VALID";
}
}


// Powered by FileEdit
// Powered by TZTester 1.01 [25-Feb-2003]
// Powered by CodeProcessor


API使いまくり.

0 件のコメント: