| ||||||||||
| 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 | |||||||||
写了个40KB的,太长了,提交不了,重新思考,写了个3KB的,一次性AC,呵呵把40KB的贴出来给各位牛人看看吧,小心眼花哦!个人觉得这个应该是对了,测试数据过了的
#include <iostream>
using namespace std;
int main()
{
int m;
cin>>m;
while(m--)
{
long x=0,y=0,z=0,p=0,q=2;
long n;
cin>>n;
while(n--)
{
char str[8];
long t;
scanf("%s %ld",str,&t);
switch(p)
{
case 0:
{
if(q==2)
{
if(str[0]=='l')
{
y=y-t;
p=4;
q=2;
break;
}
if(str[0]=='r')
{
y=y+t;
p=1;
q=2;
break;
}
if(str[0]=='u')
{
z=z+t;
p=2;
q=3;
break;
}
if(str[0]=='d')
{
z=z-t;
p=5;
q=0;
break;
}
if(str[0]=='f')
{
x=x+t;
p=0;
q=2;
break;
}
if(str[0]=='b')
{
x=x-t;
p=3;
q=2;
break;
}
}
if(q==1)
{
if(str[0]=='l')
{
z=z+t;
p=2;
q=1;
break;
}
if(str[0]=='r')
{
z=z-t;
p=5;
q=1;
break;
}
if(str[0]=='u')
{
y=y+t;
p=1;
q=3;
break;
}
if(str[0]=='d')
{
y=y-t;
p=4;
q=0;
break;
}
if(str[0]=='f')
{
x=x+t;
p=0;
q=1;
break;
}
if(str[0]=='b')
{
x=x-t;
p=3;
q=1;
break;
}
}
if(q==5)
{
if(str[0]=='l')
{
y=y+t;
p=1;
q=5;
break;
}
if(str[0]=='r')
{
y=y-t;
p=4;
q=5;
break;
}
if(str[0]=='u')
{
z=z-t;
p=5;
q=3;
break;
}
if(str[0]=='d')
{
z=z+t;
p=2;
q=0;
break;
}
if(str[0]=='f')
{
x=x+t;
p=0;
q=5;
break;
}
if(str[0]=='b')
{
x=x-t;
p=3;
q=5;
break;
}
}
if(q==4)
{
if(str[0]=='l')
{
z=z-t;
p=5;
q=4;
break;
}
if(str[0]=='r')
{
z=z+t;
p=2;
q=4;
break;
}
if(str[0]=='u')
{
y=y-t;
p=4;
q=3;
break;
}
if(str[0]=='d')
{
y=y+t;
p=1;
q=0;
break;
}
if(str[0]=='f')
{
x=x+t;
p=0;
q=4;
break;
}
if(str[0]=='b')
{
x=x-t;
p=3;
q=4;
break;
}
}
}
case 1:
{
if(q==2)
{
if(str[0]=='l')
{
x=x+t;
p=0;
q=2;
break;
}
if(str[0]=='r')
{
x=x-t;
p=3;
q=2;
break;
}
if(str[0]=='u')
{
z=z+t;
p=2;
q=4;
break;
}
if(str[0]=='d')
{
z=z-t;
p=5;
q=1;
break;
}
if(str[0]=='f')
{
y=y+t;
p=1;
q=2;
break;
}
if(str[0]=='b')
{
y=y-t;
p=4;
q=2;
break;
}
}
if(q==3)
{
if(str[0]=='l')
{
z=z+t;
p=2;
q=3;
break;
}
if(str[0]=='r')
{
z=z-t;
p=5;
q=3;
break;
}
if(str[0]=='u')
{
x=x-t;
p=3;
q=4;
break;
}
if(str[0]=='d')
{
x=x+t;
p=0;
q=1;
break;
}
if(str[0]=='f')
{
y=y+t;
p=1;
q=3;
break;
}
if(str[0]=='b')
{
y=y-t;
p=4;
q=3;
break;
}
}
if(q==5)
{
if(str[0]=='l')
{
x=x-t;
p=3;
q=5;
break;
}
if(str[0]=='r')
{
x=x+t;
p=0;
q=5;
break;
}
if(str[0]=='u')
{
z=z-t;
p=5;
q=4;
break;
}
if(str[0]=='d')
{
z=z+t;
p=2;
q=1;
break;
}
if(str[0]=='f')
{
y=y+t;
p=1;
q=5;
break;
}
if(str[0]=='b')
{
y=y-t;
p=4;
q=5;
break;
}
}
if(q==0)
{
if(str[0]=='l')
{
z=z-t;
p=5;
q=0;
break;
}
if(str[0]=='r')
{
z=z+t;
p=2;
q=0;
break;
}
if(str[0]=='u')
{
x=x+t;
p=0;
q=4;
break;
}
if(str[0]=='d')
{
x=x-t;
p=3;
q=1;
break;
}
if(str[0]=='f')
{
y=y+t;
p=1;
q=0;
break;
}
if(str[0]=='b')
{
y=y-t;
p=4;
q=0;
break;
}
}
}
case 2:
{
if(q==0)
{
if(str[0]=='l')
{
y=y+t;
p=1;
q=0;
break;
}
if(str[0]=='r')
{
y=y-t;
p=4;
q=0;
break;
}
if(str[0]=='u')
{
x=x+t;
p=0;
q=5;
break;
}
if(str[0]=='d')
{
x=x-t;
p=3;
q=2;
break;
}
if(str[0]=='f')
{
z=z+t;
p=2;
q=0;
break;
}
if(str[0]=='b')
{
z=z-t;
p=5;
q=0;
break;
}
}
if(q==1)
{
if(str[0]=='l')
{
x=x-t;
p=3;
q=1;
break;
}
if(str[0]=='r')
{
x=x+t;
p=0;
q=1;
break;
}
if(str[0]=='u')
{
y=y+t;
p=1;
q=5;
break;
}
if(str[0]=='d')
{
y=y-t;
p=4;
q=2;
break;
}
if(str[0]=='f')
{
z=z+t;
p=2;
q=1;
break;
}
if(str[0]=='b')
{
z=z-t;
p=5;
q=1;
break;
}
}
if(q==3)
{
if(str[0]=='l')
{
y=y-t;
p=4;
q=3;
break;
}
if(str[0]=='r')
{
y=y+t;
p=1;
q=3;
break;
}
if(str[0]=='u')
{
x=x-t;
p=3;
q=5;
break;
}
if(str[0]=='d')
{
x=x+t;
p=0;
q=2;
break;
}
if(str[0]=='f')
{
z=z+t;
p=2;
q=3;
break;
}
if(str[0]=='b')
{
z=z-t;
p=5;
q=3;
break;
}
}
if(q==4)
{
if(str[0]=='l')
{
x=x+t;
p=0;
q=4;
break;
}
if(str[0]=='r')
{
x=x-t;
p=3;
q=4;
break;
}
if(str[0]=='u')
{
y=y-t;
p=4;
q=5;
break;
}
if(str[0]=='d')
{
y=y+t;
p=1;
q=2;
break;
}
if(str[0]=='f')
{
z=z+t;
p=2;
q=4;
break;
}
if(str[0]=='b')
{
z=z-t;
p=5;
q=4;
break;
}
}
}
case 3:
{
if(q==1)
{
if(str[0]=='l')
{
z=z-t;
p=5;
q=1;
break;
}
if(str[0]=='r')
{
z=z+t;
p=2;
q=1;
break;
}
if(str[0]=='u')
{
y=y+t;
p=1;
q=0;
break;
}
if(str[0]=='d')
{
y=y-t;
p=4;
q=3;
break;
}
if(str[0]=='f')
{
x=x-t;
p=3;
q=1;
break;
}
if(str[0]=='b')
{
x=x+t;
p=0;
q=1;
break;
}
}
if(q==2)
{
if(str[0]=='l')
{
y=y+t;
p=1;
q=2;
break;
}
if(str[0]=='r')
{
y=y-t;
p=4;
q=2;
break;
}
if(str[0]=='u')
{
z=z+t;
p=2;
q=0;
break;
}
if(str[0]=='d')
{
z=z-t;
p=5;
q=3;
break;
}
if(str[0]=='f')
{
x=x-t;
p=3;
q=2;
break;
}
if(str[0]=='b')
{
x=x+t;
p=0;
q=2;
break;
}
}
if(q==4)
{
if(str[0]=='l')
{
z=z+t;
p=2;
q=4;
break;
}
if(str[0]=='r')
{
z=z-t;
p=5;
q=4;
break;
}
if(str[0]=='u')
{
y=y-t;
p=4;
q=0;
break;
}
if(str[0]=='d')
{
y=y+t;
p=1;
q=3;
break;
}
if(str[0]=='f')
{
x=x-t;
p=3;
q=4;
break;
}
if(str[0]=='b')
{
x=x+t;
p=0;
q=4;
break;
}
}
if(q==5)
{
if(str[0]=='l')
{
y=y-t;
p=4;
q=5;
break;
}
if(str[0]=='r')
{
y=y+t;
p=1;
q=5;
break;
}
if(str[0]=='u')
{
z=z-t;
p=5;
q=0;
break;
}
if(str[0]=='d')
{
z=z+t;
p=2;
q=3;
break;
}
if(str[0]=='f')
{
x=x-t;
p=3;
q=5;
break;
}
if(str[0]=='b')
{
x=x+t;
p=0;
q=5;
break;
}
}
}
case 4:
{
if(q==0)
{
if(str[0]=='l')
{
z=z+t;
p=2;
q=0;
break;
}
if(str[0]=='r')
{
z=z-t;
p=5;
q=0;
break;
}
if(str[0]=='u')
{
x=x+t;
p=0;
q=1;
break;
}
if(str[0]=='d')
{
x=x-t;
p=3;
q=4;
break;
}
if(str[0]=='f')
{
y=y-t;
p=4;
q=0;
break;
}
if(str[0]=='b')
{
y=y+t;
p=1;
q=0;
break;
}
}
if(q==2)
{
if(str[0]=='l')
{
x=x-t;
p=3;
q=2;
break;
}
if(str[0]=='r')
{
x=x+t;
p=0;
q=2;
break;
}
if(str[0]=='u')
{
z=z+t;
p=2;
q=1;
break;
}
if(str[0]=='d')
{
z=z-t;
p=5;
q=4;
break;
}
if(str[0]=='f')
{
y=y-t;
p=4;
q=2;
break;
}
if(str[0]=='b')
{
y=y+t;
p=1;
q=2;
break;
}
}
if(q==3)
{
if(str[0]=='l')
{
z=z-t;
p=2;
q=4;
break;
}
if(str[0]=='r')
{
z=z+t;
p=5;
q=4;
break;
}
if(str[0]=='u')
{
y=y-t;
p=4;
q=0;
break;
}
if(str[0]=='d')
{
y=y+t;
p=1;
q=3;
break;
}
if(str[0]=='f')
{
y=y-t;
p=4;
q=3;
break;
}
if(str[0]=='b')
{
y=y+t;
p=1;
q=3;
break;
}
}
if(q==5)
{
if(str[0]=='l')
{
x=x+t;
p=0;
q=5;
break;
}
if(str[0]=='r')
{
x=x-t;
p=3;
q=5;
break;
}
if(str[0]=='u')
{
z=z-t;
p=5;
q=1;
break;
}
if(str[0]=='d')
{
z=z+t;
p=2;
q=4;
break;
}
if(str[0]=='f')
{
y=y-t;
p=4;
q=5;
break;
}
if(str[0]=='b')
{
y=y+t;
p=1;
q=5;
break;
}
}
}
case 5:
{
if(q==0)
{
if(str[0]=='l')
{
y=y-t;
p=4;
q=0;
break;
}
if(str[0]=='r')
{
y=y+t;
p=1;
q=0;
break;
}
if(str[0]=='u')
{
x=x+t;
p=0;
q=2;
break;
}
if(str[0]=='d')
{
x=x-t;
p=3;
q=5;
break;
}
if(str[0]=='f')
{
z=z-t;
p=5;
q=0;
break;
}
if(str[0]=='b')
{
z=z+t;
p=2;
q=0;
break;
}
}
if(q==1)
{
if(str[0]=='l')
{
x=x+t;
p=0;
q=1;
break;
}
if(str[0]=='r')
{
x=x-t;
p=3;
q=1;
break;
}
if(str[0]=='u')
{
y=y+t;
p=1;
q=2;
break;
}
if(str[0]=='d')
{
y=y-t;
p=4;
q=5;
break;
}
if(str[0]=='f')
{
z=z-t;
p=5;
q=1;
break;
}
if(str[0]=='b')
{
z=z+t;
p=2;
q=1;
break;
}
}
if(q==3)
{
if(str[0]=='l')
{
y=y+t;
p=1;
q=3;
break;
}
if(str[0]=='r')
{
y=y-t;
p=4;
q=3;
break;
}
if(str[0]=='u')
{
x=x-t;
p=3;
q=2;
break;
}
if(str[0]=='d')
{
x=x+t;
p=0;
q=5;
break;
}
if(str[0]=='f')
{
z=z-t;
p=5;
q=3;
break;
}
if(str[0]=='b')
{
z=z+t;
p=2;
q=3;
break;
}
}
if(q==4)
{
if(str[0]=='l')
{
x=x-t;
p=3;
q=4;
break;
}
if(str[0]=='r')
{
x=x+t;
p=3;
q=4;
break;
}
if(str[0]=='u')
{
y=y-t;
p=4;
q=2;
break;
}
if(str[0]=='d')
{
y=y+t;
p=1;
q=5;
break;
}
if(str[0]=='f')
{
z=z-t;
p=5;
q=4;
break;
}
if(str[0]=='b')
{
z=z+t;
p=2;
q=4;
break;
}
}
}
}
}
cout<<x<<" "<<y<<" "<<z<<" "<<p<<endl;
}
system("pause");
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator