Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- int n;
- string grid;
- vector<int> adj[1001];
- queue<int> q;
- vector<int> ans;
- int main(){
- //freopen("leafnodes.in", "r", stdin);
- cin >> n;
- //adj.resize(n+1);
- bool visited[n+1];
- memset(visited, false, sizeof(visited));
- for(int i=0; i<n; i++){
- cin >> grid;
- for(int j=0; j<n; j++){
- if(grid[j] == '1'){
- adj[i+1].push_back(j+1);
- }
- }
- }
- q.push(1);
- visited[1] = true;
- while(!q.empty()){
- int cur = q.front();
- q.pop();
- int count = 0;
- for(auto v: adj[cur]){
- if(!visited[v]){
- visited[v] = true;
- count++;
- q.push(v);
- }
- }
- if(count == 0){
- ans.push_back(cur);
- //cout << s << cur;
- //s = " ";
- }
- }
- sort(ans.begin(), ans.end());
- string s = "";
- cout << ans.size() << '\n';
- for(auto v: ans){
- cout << s << v;
- s = " ";
- }
- cout << '\n';
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement