import java.util.*; public class Main { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); while(scanner.hasNext()){ int n=scanner.nextInt(); int m=scanner.nextInt(); if(n==0&&m==0){ break; } int[][] courses=new int[m][2]; for(int i=0;i<m;i++){ courses[i][0]=scanner.nextInt(); courses[i][1]=scanner.nextInt(); } Main main=new Main(); if(main.canFinish(n,courses)){ System.out.println("RIGHT"); } else{ System.out.println("ERROR"); } } } public boolean canFinish(int n,int[][] courses){ int[] entrance=new int[n]; for(int[] ints:courses){ entrance[ints[0]-1]++; } Queue<Integer> queue=new ArrayDeque<>(); for(int i=0;i<n;i++){ if(entrance[i]==0){ queue.add(i+1); } } while (!queue.isEmpty()){ int pre=queue.remove(); n--; for(int[] ints:courses){ if(ints[1]!=pre){ continue; } if(--entrance[ints[0]-1]==0){ queue.add(ints[0]); } } } return n==0; } } |
Double click to view unformatted code.