C - Straw Millionaire Editorial by TKTY1

DFSでもいいヨ

DFSでもいいです。

#include<bits/stdc++.h>
using namespace std;
int main(){
  int n,m;
  cin>>n>>m;
  vector<vector<int>>g(n);
  for(int i=0;i<m;i++){
    int a,b;
    cin>>a>>b;
    a--;
    b--;
    g[a].emplace_back(b);
  }
  vector<bool> ok(n);
  auto dfs=[&](auto ddfs,vector<vector<int>>&g,int u,vector<bool>&ok)->void{
    ok[u]=true;
    for(auto v:g[u]){
      if(!ok[v])ddfs(ddfs,g,v,ok);
    }
  };
  dfs(dfs,g,0,ok);
  int ans=0;
  for(int i=0;i<n;i++)if(ok[i]==true)ans++;
  cout<<ans<<endl;
}

posted:
last update: