Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Calendar;
- import java.util.Scanner;
- class Main {
- static boolean[] visited;
- static int[][] edges;
- static int[][] vertices;
- static int count=0;
- public static void main(String[] args) {
- Scanner s=new Scanner(System.in);
- int n=s.nextInt();
- int m=s.nextInt();
- s.nextLine();
- visited=new boolean[n];
- edges=new int[m][2];
- vertices=new int[n][2];
- String[] str=new String[2];
- for (int i = 0; i < m; i++) {
- if(s.hasNext()){
- str=s.nextLine().split(" ");
- edges[i][0]=Integer.parseInt(str[0])-1;
- edges[i][1]=Integer.parseInt(str[1])-1;
- //edges[i+m][0]=Integer.parseInt(str[1])-1;
- //edges[i+m][1]=Integer.parseInt(str[0])-1;
- }
- }
- for (int i = 0; i < n; i++) {
- //visited=new boolean[n];
- explore(i);
- }
- /*for (int i = 0; i < n; i++) {
- System.out.println("Time for "+i+" is "+vertices[i][0]+" ||| "+vertices[i][1]);
- }*/
- for (int i = 0; i < edges.length; i++) {
- if(vertices[edges[i][1]][0]<vertices[edges[i][0]][0]&&vertices[edges[i][1]][1]>vertices[edges[i][0]][1]){
- System.out.println(1);
- System.exit(0);
- }
- }
- System.out.println(0);
- }
- private static void explore(int v) {
- visited[v]=true;
- if(vertices[v][0]==0)
- vertices[v][0]=++count;
- for (int i = 0; i < edges.length; i++) {
- if (edges[i][0]==v){
- if (visited[edges[i][1]]==false){
- explore(edges[i][1]);
- /*}else{
- System.out.println(1);
- System.exit(0);*/
- }
- }
- }
- if(vertices[v][1]==0)
- vertices[v][1]=++count;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement