fork download
  1. import java.util.*;
  2. import java.lang.*;
  3. import java.io.*;
  4.  
  5.  
  6. class Ideone
  7. {
  8. static int t1,t2;
  9. static boolean arrive = false; //깊이가 5가 될 경우 true
  10. static ArrayList<Integer>[] graph;
  11. static boolean[] visited;
  12.  
  13.  
  14. private static void dfs(int n , int depth){
  15. if(depth == 5 || arrive){
  16. arrive = true;
  17. return;
  18. }
  19. visited[n] = true;
  20.  
  21. for(int i : graph[n]){
  22. if(!visited[n]){
  23. dfs(i,depth+1);
  24. }
  25. }
  26. visited[n] = false;
  27. }
  28.  
  29.  
  30. public static void main (String[] args) throws java.lang.Exception
  31. {
  32. StringTokenizer st = new StringTokenizer(br.readLine());
  33.  
  34. t1 = Integer.parseInt(st.nextToken());
  35. t2 = Integer.parseInt(st.nextToken());
  36.  
  37. graph = new ArrayList[t1];
  38. visited = new boolean[t1];
  39.  
  40. for(int i=0; i< t1;i++){
  41. graph[i] = new ArrayList<Integer>();
  42. }
  43.  
  44. for(int i=0;i<t2;i++){
  45. st = new StringTokenizer(br.readLine());
  46. int u = Integer.parseInt(st.nextToken());
  47. int v = Integer.parseInt(st.nextToken());
  48.  
  49. //쌍방향
  50. graph[u].add(v);
  51. graph[v].add(u);
  52. }
  53.  
  54. for(int i=0;i<t1;i++){
  55. dfs(i,1);
  56. }
  57.  
  58. if(arrive){
  59. System.out.println("1");
  60. }
  61. else System.out.println("0");
  62.  
  63. /*
  64. //출력
  65. for (int i = 0; i < t1; i++) {
  66.   System.out.print("graph[" + i + "] -> ");
  67.   for (int j : graph[i]) {
  68.   System.out.print(j + " ");
  69.   }
  70.   System.out.println();
  71.   }
  72.   */
  73.  
  74.  
  75. }
  76. }
Success #stdin #stdout 0.08s 52976KB
stdin
8 8
1 7
3 7
4 7
3 4
4 6
3 5
0 4
2 7
stdout
0