| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
三方向定位:头 脸 及 左脸 任意一个转向可以用3个方向中的一个或其相反表示 相反为(n+3)%6#include<stdio.h>
int x,y,z;
int dir,hdir,lfdir;
void go(int a,int b)
{
switch(a)
{
case 0:
x+=b;
break;
case 1:
y+=b;
break;
case 2:
z+=b;
break;
case 3:
x-=b;
break;
case 4:
y-=b;
break;
case 5:
z-=b;
break;
}
}
int main()
{
char inp[10];
int dis,num,total,n;
scanf("%d",&total);
while(total--)
{
dir=0;
hdir=2;
lfdir=4;
x=0;
y=0;
z=0;
int tem;
scanf("%d",&num);
while(num--)
{
scanf("%s%d",inp,&dis);
switch(inp[0])
{
case 'f':
break;
case 'b':
dir=(dir+3)%6;
lfdir=(lfdir+3)%6;
break;
case 'l':
tem=dir;
dir=lfdir;
lfdir=(tem+3)%6;
break;
case 'r':
tem=dir;
dir=(lfdir+3)%6;
lfdir=tem;
break;
case 'u':
tem=dir;
dir=hdir;
hdir=(tem+3)%6;
break;
case 'd':
tem=dir;
dir=(hdir+3)%6;
hdir=tem;
break;
}
go(dir,dis);
}
printf("%d %d %d %d\n",x,y,z,dir);
}
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator