Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
Register

## 写了个40KB的，太长了，提交不了，重新思考，写了个3KB的，一次性AC，呵呵

Posted by jxnuxiaoyong at 2009-03-28 11:26:09 on Problem 1835
```把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: