Pagini recente » Cod sursa (job #625320) | Cod sursa (job #1071004) | Cod sursa (job #991219) | Cod sursa (job #814885) | Cod sursa (job #1705146)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
class Main {
public static void main(String[] args) throws FileNotFoundException, IOException {
BufferedReader in = new BufferedReader(new FileReader("dfs.in"));
String temp[] = in.readLine().split(" ");
int N = Integer.parseInt(temp[0]);
int M = Integer.parseInt(temp[1]);
List<List<Integer>> g = new ArrayList<>();
for (int i = 0; i <= N; i++) {
g.add(i, new ArrayList<Integer>());
}
for (int i = 0; i < M; i++) {
temp = in.readLine().split(" ");
int x = Integer.parseInt(temp[0]);
int y = Integer.parseInt(temp[1]);
g.get(x).add(y);
}
vis = new int[N + 1];
dfs(g);
BufferedWriter out = new BufferedWriter(new FileWriter("dfs.out"));
out.write(max);
//System.out.println(max);
in.close();
out.close();
}
static int[] vis;
static int max = 0;
static void dfs(List<List<Integer>> g) {
for (int i = 1; i < g.size(); i++) {
if (vis[i] == 0) {
int tbm = 0;
Stack<Integer> s = new Stack();
s.push(i);
while (!s.isEmpty()) {
tbm++;
int j = s.pop();
for (Integer n : g.get(j)) {
if (vis[n] == 0) {
vis[n] = j;
s.push(n);
}
}
}
if(tbm > max)max = tbm;
}
}
}
}