Advertisement
Guest User

Untitled

a guest
Apr 4th, 2020
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.71 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int n;
  5. vector<int> son[1010],nxt,cam;
  6. bool conf[1010];
  7. char s[1010][1010];
  8.  
  9. void dfs(int pos){
  10.     for(int i=0;i<son[pos].size();i++) dfs(son[pos][i]);
  11.     cam.push_back(pos);
  12.     return;
  13. }
  14.  
  15. int main(){
  16.     scanf("%d", &n);
  17.     for(int i=0;i<n;i++) scanf(" %s", s[i]);
  18.     conf[0]=true;
  19.     nxt.push_back(0);
  20.     for(int i=nxt.back();!nxt.empty();i=nxt.back()){
  21.         nxt.pop_back();
  22.         for(int j=0;j<n;j++){
  23.             if(s[i][j]=='1' && !conf[j]){
  24.                 son[i].push_back(j);
  25.                 nxt.push_back(j);
  26.                 conf[j]=true;
  27.             }
  28.         }
  29.     }
  30.     dfs(0);
  31.     if(cam.size()<n) printf("impossible\n");
  32.     else{
  33.         for(int i=0;i<n-1;i++) printf("%d ", cam[i]);
  34.         printf("%d\n", cam.back());
  35.     }
  36.     return 0;
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement