package com.interview.books.topcoder.geometry;
import com.interview.basics.model.geometry.Polygon;
/**
* Created_By: stefanie
* Date: 15-1-5
* Time: 下午6:31
*/
public class TC_G11_Surveyor {
public float area(String direction, int[] steps){
float[][] points = new float[steps.length + 1][2];
points[0] = new float[]{0,0};
for(int i = 0; i < steps.length; i++){
char ch = direction.charAt(i);
switch (ch){
case 'N': points[i+1] = new float[]{points[1][0], points[i][1] + steps[i]}; break;
case 'S': points[i+1] = new float[]{points[i][0], points[i][1] - steps[i]}; break;
case 'E': points[i+1] = new float[]{points[i][0] + steps[i], points[i][1]}; break;
case 'W': points[i+1] = new float[]{points[i][0] - steps[i], points[i][1]}; break;
}
}
Polygon polygon = new Polygon(points);
return polygon.area();
}
public static void main(String[] args){
TC_G11_Surveyor surveyor = new TC_G11_Surveyor();
String direction = "NESWNWSW";
int[] steps = new int[]{20,200,30,100,20,30,10,70};
System.out.println(surveyor.area(direction, steps));//4700
}
}