Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include <fstream>
- void main() {
- FILE* out = fopen("output.txt", "w");
- FILE* file = fopen("input.txt", "r");
- int n;
- fscanf(file, "%d\n", &n);
- // Инициализация матрицы смежности
- int** a = new int*[n];
- for (int i = 0; i < n; i++) {
- a[i] = new int[n];
- for (int j = 0; j < n; j++) {
- a[i][j] = 0;
- }
- }
- // Чтение матрицы смежности из файла
- int from, to;
- while (fscanf(file, "%d %d\n", &from, &to) != EOF) {
- a[from][to] = 1;
- }
- // src - исток, des - сток
- int *src = new int[n]; for (int i = 0; i < n; i++) src[i] = 0;
- int *des = new int[n]; for (int i = 0; i < n; i++) des[i] = 0;
- int csrc = 0, cdes = 0;
- int f1, f2;
- for (int i = 0; i < n; i++) {
- f1 = f2 = 0;
- // Сумма линий
- for (int j = 0; j < n; j++) f1 += a[i][j];
- for (int j = 0; j < n; j++) f2 += a[j][i];
- if (f1 == 0) {
- cdes++;
- des[i] = i;
- }
- if (f2 == 0) {
- csrc++;
- src[i] = i;
- }
- }
- fprintf(out, "%d", cdes);
- for (int i = 0; i < n; i++)
- if (src[i] != 0) fprintf(out, " %d", src[i]);
- fprintf(out, "\n%d", csrc);
- for (int i = 0; i < n; i++)
- if (des[i] != 0) fprintf(out, " %d", des[i]);
- fclose(out);
- }
Advertisement
Add Comment
Please, Sign In to add comment