http://acm.pku.edu.cn/JudgeOnline/problem?id=1835
三方向定位:头 脸 及 左脸 任意一个转向可以用3个方向中的一个或其相反表示,相反为(n+3)%6。
import java.util.*;
import java.io.*;
public class poj_1835{
public static void main(String rgs[]) throws Exception
{
Scanner cin = new Scanner(new BufferedInputStream(System.in));
int i,j,k,n,m = cin.nextInt();
for(i=0;i<m;i++){
n = cin.nextInt();
String s="";
int x,y,z,f,h,l,temp;
x=y=z=f=0;
h=2;
l=4;
for(j=0;j<n;j++){
s=cin.next();
k = cin.nextInt();
if(s.equals("left")){
temp=f;
f=l;
l=(temp+3)%6;
}
if(s.equals("right")){
temp=f;
f=(l+3)%6;
l=temp;
}
if(s.equals("up")){
temp=f;
f=h;
h=(temp+3)%6;
}
if(s.equals("down")){
temp=f;
f=(h+3)%6;
h=temp;
}
if(s.equals("forward")){
}
if(s.equals("back")){
f=(f+3)%6;
l=(l+3)%6;
}
switch(f){
case 0:x+=k;break;
case 1:y+=k;break;
case 2:z+=k;break;
case 3:x-=k;break;
case 4:y-=k;break;
case 5:z-=k;break;
}
}
System.out.println(x+" "+y+" "+z+" "+f);
}
}
}
posted on 2009-09-16 15:57
飞翔天使 阅读(599)
评论(0) 编辑 收藏 所属分类:
poj