Guest User

Untitled

a guest
Nov 15th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.67 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace FordBellman
  7. {
  8. class Ford
  9. {
  10. static void Main()
  11. {
  12. int n, s, m, k = 0, mod_e; // mod_e - Кол-во ребер (во всем графе)
  13. mod_e = k; // k - счетчик массивов ребер
  14. int[] a = new int[200]; // массив начал ребер
  15. int[] b = new int[200]; // массив концов ребер
  16. int[] w = new int[200]; // массив весов ребер
  17. int[] d = new int[200]; // массив расстояний
  18.  
  19. Console.WriteLine("Введите количество вершин:");
  20. n = int.Parse(Console.ReadLine()); // Количество вершин
  21. Console.WriteLine("nВведите номер стартовой вершины:");
  22. s = int.Parse(Console.ReadLine()); // Стартовая вершина
  23. for (int i = 1; i <= n; i++) // Задание массивов ребер
  24. {
  25. Console.WriteLine("nВведите количество ребер, исходящих из вершины " +i);
  26. m = int.Parse(Console.ReadLine());
  27. for (int j = 1; j <= m; j++)
  28. {
  29. a[k] = i;
  30. Console.WriteLine("nВведите номер конечной вершины для "+ j + "-го ребра, исходящего из "+ i+ ":");
  31. b[k] = int.Parse(Console.ReadLine());
  32. Console.WriteLine("nВведите вес "+ j+ "-го ребра, исходящего из "+ i+ ":");
  33. w[k] = int.Parse(Console.ReadLine());
  34. k++;
  35. }
  36. mod_e++;
  37. }
  38. for (int i = 1; i <= n; i++) d[i] = 999999;
  39. d[s] = 0;
  40. for (int i = 1; i < n; i++)
  41. {
  42. if (i == s) i++;
  43. else
  44. {
  45. for (int j = 1; j <= mod_e; j++)
  46. {
  47. if (d[b[j]] > (d[a[j]] + w[j])) d[b[j]] = d[a[j]] + w[j];
  48. j++;
  49. }
  50. i++;
  51. }
  52. }
  53. for (int i = 1; i <= n; i++)
  54. {
  55. Console.WriteLine("nnnКратчайший путь до вершины " + i + " = " + d[i]);
  56. }
  57. Console.WriteLine(d);
  58. Console.ReadLine();
  59. }
  60. }
  61. }
Add Comment
Please, Sign In to add comment