Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  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:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator