View Code of Problem 131

#include<stdio.h>
int a[101][101],sum;

int maodun(int i,int n){
	int flag=0;
	for(int j=1;j<=n;j++){
		if(a[i][j]==1){
			flag=1;
			sum+=1;
			if(sum>=n) 
				break;
			if(!maodun(j,n))
				sum-=1;
		}
	}
	return flag;
}

int main(){
	int n,m;
	while(scanf("%d %d",&n,&m)!=EOF){
		sum=0;
		int flag=0;
		for(int i=1;i<=n;i++)
			for(int j=1;j<=n;j++)
				a[i][j]=0;
		for(int i=1;i<=m;i++){
			int l,r;
			scanf("%d %d",&l,&r);
			if(l>n||l<1||r>n||r<1){
				flag=1;
			}
			a[l][r]=1;
		}
		for(int i=1;i<=n;i++){
			if(sum<n)
				maodun(i,n);
			else 
				break;
		}
		if(sum<n&&flag==0){
			printf("RIGHT\n");
		}
		else
			printf("ERROR\n");
	}
	return 0;
}

Double click to view unformatted code.


Back to problem 131