import java.util.LinkedList; import java.util.Scanner; public class Main { private static Scanner s = new Scanner(System.in) ; public static void main(String[] args) { int n = s.nextInt() ; int a[][] = new int[n][n] ; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { a[i][j] = s.nextInt() ; } } for (int i = 0; i < a.length; i++) { a[i][i] = 1 ; } boolean visited[] = new boolean[a.length] ; LinkedList<Integer> queue = new LinkedList<Integer>() ; queue.add(0) ; System.out.print(0+ " ") ; visited[0] = true ; while(queue.size()!=0){ int k = queue.pollFirst() ; for (int i = 0; i < visited.length; i++) { if(visited[i]==false&&a[k][i]==1){ visited[i] = true ; queue.add(i) ; System.out.print(i+" ") ; } } } System.out.println(); } } /************************************************************** Problem: 2160 User: admin Language: Java Result: Accepted Time:881 ms Memory:44592 kb ****************************************************************/