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 row,col; int map[110][110]; int loc[110][2]; int dir[110]; int oriention[4][2]={{1,0},{0,1},{-1,0},{0,-1}}; int forward(int o,int re) { int x,y; x=loc[o][0]; y=loc[o][1]; int k=oriention[dir[o]][0]; int j=oriention[dir[o]][1]; map[x][y]=0; for(int i=1;i<=re;i++) { x+=k; y+=j; if(x<=0||x>=row+1||y<=0||y>=col+1)//zhuang qiang { cout<<"Robot "<<o<<" crashes into the wall"<<endl; return 0; } if(map[x][y])//zhuang jiqi { cout<<"Robot "<<o<<" crashes into robot "<<map[x][y]<<endl; return 0; } } loc[o][0]=x; loc[o][1]=y; map[x][y]=o;//成功移到新位置 return 1; } int emuluator(int o,char c,int re) { switch(c) { case 'L':dir[o]=(dir[o]+re)%4;return 1; case 'R':dir[o]=(dir[o]-re+4)%4;return 1; case 'F':return forward(o,re); default: return 0; } } int main() { int table[130]; table['E']=0; table['N']=1; table['W']=2; table['S']=3; int cases; int num,mand; int i; cin>>cases; while(cases--) { cin>>row>>col; cin>>num>>mand; char c; memset(map,0,sizeof(map)); memset(loc,0,sizeof(loc)); memset(dir,0,sizeof(dir)); for(i=1;i<=num;i++) { cin>>loc[i][0]>>loc[i][1]>>c; dir[i]=table[c]; map[loc[i][0]][loc[i][1]]=i; } int f=1; int order[110]; int repeat[110]; char c1[110]; for(i=1;i<=mand;i++) { cin>>order[i]>>c1[i]>>repeat[i]; } for(i=1;i<=mand;i++) { if(f) f=emuluator(order[i],c1[i],repeat[i]); else break; } if(f) cout<<"OK"<<endl; } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator