View Code of Problem 131

#include <iostream>
#include <vector>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <set>
using namespace std;
int main(){
	int n,m;
	while(cin>>n>>m){
		vector<vector<int>> num(n,vector<int>(n,0));
		 int a,b;
		 int de[n]={0},vi[n]={0};
		 for(int i=0;i<m;i++){
		 	cin>>a>>b;
		 	num[a-1][b-1]=1;
		 	de[a-1]++;
		}//行都为0代表没有先修课 
		for(int i=0;i<n;i++){
			if(de[i]==0&&vi[i]==0){//入度为0,删除连接他的边 
				vi[i]=1;
				for(int j=0;j<n;j++)
					num[j][i]=0;
			}
		}
		bool flag=true;
		for(int i=0;i<n;i++){
			for(int j=0;j<n;j++){
				if(num[i][j]!=0){
					flag=false;
					break;
				}	
			}
			if(flag==false)
				break;
		}
		if(flag==false)
			cout<<"ERROR"<<endl;
		else cout<<"RIGHT"<<endl;
	} 
    return 0;
}

Double click to view unformatted code.


Back to problem 131