fork download
  1. import java.util.Scanner;
  2. import java.util.ArrayList;
  3.  
  4. class Main
  5. {
  6. private static void dfs(int v, int p, ArrayList<ArrayList<Integer>> g , int[] A) {
  7. A[v]++;
  8. if (A[v]>1)
  9. return;
  10. for (int i=0; i<g.get(v).size(); i++)
  11. {
  12. if (g.get(v).get(i)!=p)
  13. dfs(g.get(v).get(i), v, g, A);
  14. }
  15. }
  16.  
  17. public static void main (String[] args)
  18. {
  19. Scanner scanner = new Scanner(System.in);
  20. int n = scanner.nextInt();
  21. int[] A = new int[n];
  22. ArrayList<ArrayList<Integer>> g = new ArrayList<ArrayList<Integer>>();
  23. for (int i=0; i<n; i++) {
  24. ArrayList<Integer> r = new ArrayList<Integer>();
  25. for (int j=0; j<n; j++) {
  26. int a = scanner.nextInt();
  27. if (a==1) {
  28. r.add(j);
  29. }
  30. }
  31. g.add(r);
  32. }
  33. int t=0;
  34. dfs(0, -1, g, A);
  35. for (int i=0; i<n; i++)
  36. {
  37. if (A[i]!=1)
  38. {
  39. t++;
  40. break;
  41. }
  42. }
  43. if (t!=0)
  44. System.out.print("NO");
  45. else
  46. System.out.print("YES");
  47. }
  48. }
Success #stdin #stdout 0.06s 2184192KB
stdin
1
0
stdout
YES