View Code of Problem 131

#include <iostream>
using namespace std;

int main() {
	int n,m;
	while(cin >>n>>m){
		int map[n+1][n+1]={0};
		int degree[n+1]={0};
		for(int i=0;i<m;i++){
			int a,b;
			cin >>a>>b;
			map[a][b]=1;
			degree[b]++;
		}
		int k=n,flag;
		while(k){
			k--;
			flag=-1;
			for(int i=1;i<=n;i++){
				if(degree[i]==0){
					flag=i;
				}
			}
			
			if(flag==-1&&n){
				cout <<"ERROR"<<endl;
				break;
			}
			degree[flag]=-1;
			for(int i=1;i<=n;i++){
				if(map[flag][i]==1){
					map[flag][i]=0;
					degree[i]--;
				}
			}
		}
		if(k==0){
			cout <<"RIGHT"<<endl;
		}
	}
	return 0;
}

Double click to view unformatted code.


Back to problem 131