Pagini recente » Cod sursa (job #1919833) | Cod sursa (job #2267810) | Cod sursa (job #2706570) | Cod sursa (job #2146496) | Cod sursa (job #2225345)
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.PrintWriter;
import java.util.LinkedList;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) {
String line;
StringTokenizer st;
int N, M, i, n1, n2, x;
int[] exteriorDegree;
int[][] a;
LinkedList<Integer> list = new LinkedList<>();
try {
BufferedReader reader = new BufferedReader(new FileReader("sortaret.in"));
PrintWriter writer = new PrintWriter("sortaret.out");
line = reader.readLine();
st = new StringTokenizer(line, " ");
N = Integer.parseInt(st.nextToken());
M = Integer.parseInt(st.nextToken());
exteriorDegree = new int[N+1];
a = new int[N+1][N+1];
for (i = 1; i <= M; i++) {
line = reader.readLine();
st = new StringTokenizer(line, " ");
n1 = Integer.parseInt(st.nextToken());
n2 = Integer.parseInt(st.nextToken());
a[n1][n2] = 1;
exteriorDegree[n1]++;
}
for (i = 1; i <= N; i++) {
if (exteriorDegree[i] == 0) {
list.add(i);
}
}
for (i = 0; i < N; i++) {
x = list.get(i);
for (int j = 1; j <= N; j++) {
if (a[j][x] == 1) {
exteriorDegree[j]--;
if(exteriorDegree[j] == 0) {
list.add(j);
}
}
}
}
for (i = 1; i <= N; i++) {
writer.write(list.pollLast() + ((i == N) ? "" : " "));
}
reader.close();
writer.close();
} catch(Exception e) {
e.printStackTrace();
}
}
}