Gistrec

курсовая вариант 1

Jun 14th, 2017
262
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.23 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <fstream>
  3.  
  4. void main() {
  5. FILE* out = fopen("output.txt", "w");
  6. FILE* file = fopen("input.txt", "r");
  7. int n;
  8. fscanf(file, "%d\n", &n);
  9. // Инициализация матрицы смежности
  10. int** a = new int*[n];
  11. for (int i = 0; i < n; i++) {
  12. a[i] = new int[n];
  13. for (int j = 0; j < n; j++) {
  14. a[i][j] = 0;
  15. }
  16. }
  17. // Чтение матрицы смежности из файла
  18. int from, to;
  19. while (fscanf(file, "%d %d\n", &from, &to) != EOF) {
  20. a[from][to] = 1;
  21. }
  22. // src - исток, des - сток
  23. int *src = new int[n]; for (int i = 0; i < n; i++) src[i] = 0;
  24. int *des = new int[n]; for (int i = 0; i < n; i++) des[i] = 0;
  25. int csrc = 0, cdes = 0;
  26. int f1, f2;
  27. for (int i = 0; i < n; i++) {
  28. f1 = f2 = 0;
  29. // Сумма линий
  30. for (int j = 0; j < n; j++) f1 += a[i][j];
  31. for (int j = 0; j < n; j++) f2 += a[j][i];
  32. if (f1 == 0) {
  33. cdes++;
  34. des[i] = i;
  35. }
  36. if (f2 == 0) {
  37. csrc++;
  38. src[i] = i;
  39. }
  40. }
  41. fprintf(out, "%d", cdes);
  42. for (int i = 0; i < n; i++)
  43. if (src[i] != 0) fprintf(out, " %d", src[i]);
  44. fprintf(out, "\n%d", csrc);
  45. for (int i = 0; i < n; i++)
  46. if (des[i] != 0) fprintf(out, " %d", des[i]);
  47. fclose(out);
  48. }
Advertisement
Add Comment
Please, Sign In to add comment