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

WA细节,数组大小之前开的100结果wa,改成101 AC~

Posted by nijiushun at 2012-04-11 23:07:32 on Problem 2632
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
  int map[101][101]={0};//记录实时信息 
  int x[101],y[101];//第I个机器人的坐标 
    int fir[101]={0};//第I个机器人方向 
      int i,j,x1,x2,robot,repeat,k;
     char action,c;
      int t,a,b,m,n,bol;
int change(char c){
     if(c=='N') return 0; 
            else if(c== 'E')  return 1;
             else if(c== 'S' ) return 2;
              else if (c=='W') return 3;
              else  return -1;
            
    }// N,E,S,W用0,1,2,3表示 
int go(int rob,int x1,int y1){
    map[x[rob]][y[rob]]=0;
    x[rob]+=x1;
    y[rob]+=y1;   
    if(x[rob]==0 ||x[rob]==a+1 || y[rob]==0|| y[rob]==b+1) {bol=1;printf("Robot %d crashes into the wall\n",rob);}
    else if(map[x[rob]][y[rob]]!=0) {bol=1;printf("Robot %d crashes into robot %d\n",rob,map[x[rob]][y[rob]]);}
    else  map[x[rob]][y[rob]]=rob;//动态更新MAP  
    return 0; 
    }     
     
int fun(int rob,char act,int rep){
    
    int i,x,y;
    for(i=1;i<=rep;i++){
                        if(bol==1 ) return 0;//检测是否输出完毕 
                  if(act=='L')   fir[rob]=(fir[rob]+3)%4;
                  else if(act=='R')     fir[rob]=(fir[rob]+1)%4;
                  else if(act=='F') {
                       switch(fir[rob]){
                                        case 0: go(rob,0,1);break;
                                        case 1: go(rob,1,0);break;
                                        case 2: go(rob,0,-1);break;
                                        case 3: go(rob,-1,0);break;
                                        defaolt:  break;
                                         }
                       }
                  else ;
                       }
     return 0;
    }
     
int main(){ 
    scanf("%d",&t);
    while(t--){
               memset(map,0,100*100*sizeof(int));
               memset(fir,0,100*sizeof(int));
                memset(x,0,100*sizeof(int));
                 memset(y,0,100*sizeof(int));
            scanf("%d %d",&a,&b);   
            scanf("%d %d",&n,&m);
            for(i=1;i<=n;i++)
               {scanf("%d %d %c",&x1,&x2,&c);fir[i]=change(c);map[x1][x2]=i;x[i]=x1;y[i]=x2;}
            bol=0;//函数输出检测
             for(i=1;i<=m;i++){               
           scanf("%d %c %d",&robot,&action,&repeat); 
               fun(robot,action,repeat);          
               } if(bol==0 ) printf("OK\n");
           }
    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