View Code of Problem 131

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,m;
	while(cin>>n>>m){
		vector<int>v[n+1];
		for(int i=0;i<m;++i){
			int x,y;
			scanf("%d %d",&x,&y);
			v[x].push_back(y);
		}
		int f[n+1];
		memset(f,0,sizeof(f));
		while(true){
			int eras=-1;
			for(int i=1;i<=n;++i){
				if(v[i].size()==0&&f[i]==0){
					eras=i;
					f[i]=1;
					break;
				}
			}
			if(eras==-1)break;
			for(int i=1;i<=n;++i){
				for(int j=0;j<v[i].size();++j){
					if(v[i][j]==eras)
					v[i].erase(v[i].begin()+j);
				}
			}
		}
		bool ff=true;
		for(int i=1;i<=n;++i){
			if(v[i].size()!=0){
				ff=false;
				break;
			}
		}
		if(ff)cout<<"RIGHT"<<endl;
		else cout<<"ERROR"<<endl;
	}
	return 0;
} 

Double click to view unformatted code.


Back to problem 131