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

写了1个小时的程序,却花了3个多小时都没发现错误,谁能帮我看一下程序,先谢了

Posted by fjnu_jxd_008 at 2005-10-07 17:47:14 on Problem 2632
程序如下:
#include<stdio.h>
char data[]="ESWN";
int d[200],room[200][200],a,b,x[200],y[200];
int check(int k,int n)
{
	int t,i;
	if(d[k]==1)
	{
		t=x[k];
		for(i=1;i<=n;i++)
		{
			t++;
			if(t>a)
	    		return -1;
	    	if(room[y[k]][t])
		    	return room[y[k]][t];
		}
		room[y[k]][x[k]]=0;
		room[y[k]][t]=k;
		x[k]=t;
		return 0;
	}
    if(d[k]==2)
	{
		t=y[k];
		for(i=1;i<=n;i++)
		{
			t--;
			if(t<=0)
	    		return -1;
	    	if(room[t][x[k]])
		    	return room[t][x[k]];
		}
		room[y[k]][x[k]]=0;
		room[t][x[k]]=k;
		y[k]=t;
		return 0;
	}
	if(d[k]==3)
	{
		t=x[k];
		for(i=1;i<=n;i++)
		{
			t--;
			if(t<=0)
	    		return -1;
	    	if(room[y[k]][t])
		    	return room[y[k]][t];
		}
		room[y[k]][x[k]]=0;
		room[y[k]][t]=k;
		x[k]=t;
		return 0;
	}
	t=y[k];
	for(i=1;i<=n;i++)
	{
		t++;
 		if(t>b)
	   		return -1;
	   	if(room[t][x[k]])
	    	return room[t][x[k]];
	}
	room[y[k]][x[k]]=0;
	room[t][x[k]]=k;
	y[k]=t;
	return 0;
}
int main()
{
	int i,j,k,n,m,N,t,s;
	char c;
	scanf("%d",&N);
	for(i=1;i<=N;i++)
	{
		scanf("%d %d",&a,&b);
		for(j=1;j<=b;j++)
			for(k=1;k<=a;k++)
				room[j][k]=0;
		scanf("%d %d",&n,&m);
		for(j=1;j<=n;j++)
		{
			scanf("%d %d %c",&x[j],&y[j],&c);
			room[y[j]][x[j]]=j;
			for(k=0;k<=3;k++)
				if(c==data[k])
					break;
			d[j]=k+1;
		}
		for(j=1;j<=m;j++)
		{
			scanf("%d %c %d",&t,&c,&s);
			if(c=='L')
			{
				s%=4;
				d[t]-=s;
				if(d[t]<=0)
					d[t]+=4;
			}
			else if(c=='R')
			{
				s%=4;
				d[t]+=s;
				d[t]%=4;
				if(d[t]==0)
					d[t]=4;
			}
			else
			{
				k=check(t,s);
				if(k!=0)
					break;
			}
		}
		if(k==-1)
			printf("Robot %d crashes into the wall\n",t);
		else if(k==0)
			printf("OK\n");
		else
			printf("Robot %d crashes into robot %d\n",t,k);
		for(k=j+1;k<=m;k++)
			scanf("%d %c %d",&t,&c,&s);
	}
	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