Pagini recente » Cod sursa (job #1320764) | Cod sursa (job #2244069) | Cod sursa (job #109931) | Cod sursa (job #104083) | Cod sursa (job #355958)
Cod sursa(job #355958)
#include <fstream>
#include <vector>
#include <queue>
#include <stack>
#include <iostream>
using namespace std;
void dfs(vector<pair<vector<int>,bool> >& v,int n,int& c){
if(v[n].second){
v[n].second=false;
c++;
for(int i=0;i<v[n].first.size();i++){
dfs(v,v[n].first[i],c);
}
}
}
int main(){
ifstream in("dfs.in");
ofstream out("dfs.out");
int m,n;
in>>n>>m;
vector<pair<vector<int>,bool> > v;v.reserve(n);
for(int i=0;i<n;i++){
v.push_back(pair<vector<int>,bool>(vector<int>(),true));
}
for(int i=0;i<m;i++){
int x,y;
in>>x>>y;
v[x-1].first.push_back(y-1);
}
int max=0;
for(int i=0;i<n;i++){
int c=0;
dfs(v,i,c);
if(c>max) max=c;
}
out<<max;
}