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 |
Re:牛人们帮我看看In Reply To:牛人们帮我看看 Posted by:xinghun4 at 2007-09-06 20:29:29 > #include<stdio.h> > typedef struct n > { int x,y; > char c; > }ROBOT; > ROBOT robot[101]; > > typedef struct m > { int num,repeat; > char le; > }INS; > INS dir[101]; > > int n,a,b,crash; > int judge(int i) > { int j; > if(robot[i].x<1||robot[i].x>=a+1||robot[i].y<1||robot[i].y>=b+1) > return 1; > for(j=1;j<=n;j++) > if(j!=i&&robot[i].x==robot[j].x&&robot[i].y==robot[j].y) > { crash=j; > return 2; > } > return 0; > } > int move(int j) > { int xx,yy,t; > int k=dir[j].num; > char d=dir[j].le; > if(d=='R') > { if(robot[k].c=='N') robot[k].c='E'; > if(robot[k].c=='S') robot[k].c='W'; > if(robot[k].c=='W') robot[k].c='N'; > if(robot[k].c=='E') robot[k].c='S'; > } > if(d=='L') > { if(robot[k].c=='N') robot[k].c='W'; > if(robot[k].c=='S') robot[k].c='E'; > if(robot[k].c=='W') robot[k].c='S'; > if(robot[k].c=='E') robot[k].c='N'; > } > if(d=='F') > { if(robot[k].c=='N') {xx=0;yy=1;} > if(robot[k].c=='S') {xx=0;yy=-1;} > if(robot[k].c=='W') {xx=-1;yy=0;} > if(robot[k].c=='E') {xx=1;yy=0;} > robot[k].x+=xx; > robot[k].y+=yy; > t=judge(k); > if(t==1) > { printf("Robot %d crashes into the wall\n",k); > return 1; > } > if(t==2) > { printf("Robot %d crashes into robot %d\n",k,crash); > return 1; > } > } > return 0; > } > int main() > { > int m,k,i,j,flag,h; > scanf("%d",&k); > while(k--) > { scanf("%d %d %d %d",&a,&b,&n,&m); > for(i=1;i<=n;i++) > scanf("%d %d %c",&robot[i].x,&robot[i].y,&robot[i].c); > for(i=1;i<=m;i++) > scanf("%d %c %d",&dir[i].num,&dir[i].le,&dir[i].repeat); > for(flag=1,i=1;i<=m&&flag;i++) > { if(dir[i].le=='L'||dir[i].le=='R') > dir[i].repeat%=4; > for(j=1;j<=dir[i].repeat&&flag;j++) > { h=move(i); > if(h) flag=0; > } > } > if(flag) printf("OK\n"); > } > return 0; > } > 我自己找到错误啦,哈哈,把 if(d=='R') > { if(robot[k].c=='N') robot[k].c='E'; > if(robot[k].c=='S') robot[k].c='W'; > if(robot[k].c=='W') robot[k].c='N'; > if(robot[k].c=='E') robot[k].c='S'; > } > if(d=='L') > { if(robot[k].c=='N') robot[k].c='W'; > if(robot[k].c=='S') robot[k].c='E'; > if(robot[k].c=='W') robot[k].c='S'; > if(robot[k].c=='E') robot[k].c='N'; > } 改为: if(d=='R') { if(robot[k].c=='N') robot[k].c='E'; else if(robot[k].c=='S') robot[k].c='W'; else if(robot[k].c=='W') robot[k].c='N'; else if(robot[k].c=='E') robot[k].c='S'; } if(d=='L') { if(robot[k].c=='N') robot[k].c='W'; else if(robot[k].c=='S') robot[k].c='E'; else if(robot[k].c=='W') robot[k].c='S'; else if(robot[k].c=='E') robot[k].c='N'; } 就ac啦 Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator