| ||||||||||
| 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 | |||||||||
天呀,我的五百行呀,终于对了!!#include<iostream>
using namespace std;
int x,y,z;
int dir,dis;
char com[10];
int head;
void change()
{
if(strcmp(com,"forward")==0)
{
switch(dir)
{
case 0:
x+=dis;
break;
case 1:
y+=dis;
break;
case 2:
z+=dis;
break;
case 3:
x-=dis;
break;
case 4:
y-=dis;
break;
case 5:
z-=dis;
break;
}
return ;
}
if(strcmp(com,"back")==0)
{
switch(dir)
{
case 0:
x-=dis;
break;
case 1:
y-=dis;
break;
case 2:
z-=dis;
break;
case 3:
x+=dis;
break;
case 4:
y+=dis;
break;
case 5:
z+=dis;
break;
}
dir=(dir+3)%6;
return ;
}
if(strcmp(com,"left")==0)
{
switch(dir)
{
case 0:
if(head==2)
{
y-=dis;
dir=4;
}
if(head==5)
{
y+=dis;
dir=1;
}
if(head==1)
{
z+=dis;
dir=2;
}
if(head==4)
{
z-=dis;
dir=5;
}
break;
case 1:
if(head==2)
{
x+=dis;
dir=0;
}
if(head==5)
{
x-=dis;
dir=3;
}
if(head==0)
{
z-=dis;
dir=5;
}
if(head==3)
{
z+=dis;
dir=2;
}
break;
case 2:
if(head==0)
{
y+=dis;
dir=1;
}
if(head==3)
{
y-=dis;
dir=4;
}
if(head==1)
{
x-=dis;
dir=3;
}
if(head==4)
{
x+=dis;
dir=0;
}
break;
case 3:
if(head==1)
{
z-=dis;
dir=5;
}
if(head==4)
{
z+=dis;
dir=2;
}
if(head==2)
{
y+=dis;
dir=1;
}
if(head==5)
{
y-=dis;
dir=4;
}
break;
case 4:
if(head==0)
{
z+=dis;
dir=2;
}
if(head==3)
{
z-=dis;
dir=5;
}
if(head==2)
{
x-=dis;
dir=3;
}
if(head==5)
{
x+=dis;
dir=0;
}
break;
case 5:
if(head==0)
{
y-=dis;
dir=4;
}
if(head==3)
{
y+=dis;
dir=1;
}
if(head==1)
{
x+=dis;
dir=0;
}
if(head==4)
{
x-=dis;
dir=3;
}
break;
}
return ;
}
if(strcmp(com,"right")==0)
{
switch(dir)
{
case 0:
if(head==2)
{
y+=dis;
dir=1;
}
if(head==5)
{
y-=dis;
dir=4;
}
if(head==1)
{
z-=dis;
dir=5;
}
if(head==4)
{
z+=dis;
dir=2;
}
break;
case 1:
if(head==2)
{
x-=dis;
dir=3;
}
if(head==5)
{
x+=dis;
dir=0;
}
if(head==0)
{
z+=dis;
dir=2;
}
if(head==3)
{
z-=dis;
dir=5;
}
break;
case 2:
if(head==0)
{
y-=dis;
dir=4;
}
if(head==3)
{
y+=dis;
dir=1;
}
if(head==1)
{
x+=dis;
dir=0;
}
if(head==4)
{
x-=dis;
dir=3;
}
break;
case 3:
if(head==1)
{
z+=dis;
dir=2;
}
if(head==4)
{
z-=dis;
dir=5;
}
if(head==2)
{
y-=dis;
dir=4;
}
if(head==5)
{
y+=dis;
dir=1;
}
break;
case 4:
if(head==0)
{
z-=dis;
dir=5;
}
if(head==3)
{
z+=dis;
dir=2;
}
if(head==2)
{
x+=dis;
dir=0;
}
if(head==5)
{
x-=dis;
dir=3;
}
break;
case 5:
if(head==0)
{
y+=dis;
dir=1;
}
if(head==3)
{
y-=dis;
dir=4;
}
if(head==1)
{
x-=dis;
dir=3;
}
if(head==4)
{
x+=dis;
dir=0;
}
break;
}
return ;
}
if(strcmp(com,"up")==0)
{
switch(dir)
{
case 0:
if(head==2)
z+=dis;
if(head==5)
z-=dis;
if(head==1)
y+=dis;
if(head==4)
y-=dis;
break;
case 1:
if(head==0)
x+=dis;
if(head==3)
x-=dis;
if(head==2)
z+=dis;
if(head==5)
z-=dis;
break;
case 2:
if(head==0)
x+=dis;
if(head==3)
x-=dis;
if(head==1)
y+=dis;
if(head==4)
y-=dis;
break;
case 3:
if(head==1)
y+=dis;
if(head==4)
y-=dis;
if(head==2)
z+=dis;
if(head==5)
z-=dis;
break;
case 4:
if(head==0)
x+=dis;
if(head==3)
x-=dis;
if(head==2)
z+=dis;
if(head==5)
z-=dis;
break;
case 5:
if(head==0)
x+=dis;
if(head==3)
x-=dis;
if(head==1)
y+=dis;
if(head==4)
y-=dis;
break;
}
int tempdir=dir;
dir=head;
head=(tempdir+3)%6;
return ;
}
if(strcmp(com,"down")==0)
{
switch(dir)
{
case 0:
if(head==2)
z-=dis;
if(head==5)
z+=dis;
if(head==1)
y-=dis;
if(head==4)
y+=dis;
break;
case 1:
if(head==0)
x-=dis;
if(head==3)
x+=dis;
if(head==2)
z-=dis;
if(head==5)
z+=dis;
break;
case 2:
if(head==0)
x-=dis;
if(head==3)
x+=dis;
if(head==1)
y-=dis;
if(head==4)
y+=dis;
break;
case 3:
if(head==1)
y-=dis;
if(head==4)
y+=dis;
if(head==2)
z-=dis;
if(head==5)
z+=dis;
break;
case 4:
if(head==0)
x-=dis;
if(head==3)
x+=dis;
if(head==2)
z-=dis;
if(head==5)
z+=dis;
break;
case 5:
if(head==0)
x-=dis;
if(head==3)
x+=dis;
if(head==1)
y-=dis;
if(head==4)
y+=dis;
break;
}
int temphead=head;
head=dir;
dir=(temphead+3)%6;
return ;
}
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int i,n;
scanf("%d",&n);
x=0;y=0;z=0;dir=0;head=2;
for(i=0;i<n;i++)
{
scanf("%s %d",com,&dis);
change();
}
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