Pagini recente » Cod sursa (job #2634872) | Cod sursa (job #1696041) | Profil Djok | Cod sursa (job #1318544) | Cod sursa (job #355950)
Cod sursa(job #355950)
#include <fstream>
#include <vector>
#include <queue>
#include <stack>
#include <iostream>
using namespace std;
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=1;
queue<int> s;
for(int i=0;i<n;i++){
if(v[i].second){
s.push(i);
v[i].second=false;
int comp=0;
while(!s.empty()){
for(int i=0;i<v[s.front()].first.size();i++){
if(v[v[s.front()].first[i]].second){
s.push(v[s.front()].first[i]);
v[v[s.front()].first[i]].second=false;
}
}
comp++;
s.pop();
}
if(comp>max) max=comp;
}
}
out<<max;
}