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