Program.cs 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. namespace ConsoleApp2
  2. {
  3. internal class Program
  4. {
  5. static void Main(string[] args)
  6. {
  7. int minimumOne = 0;
  8. int minimumTwo = 0;
  9. int max = 0;
  10. Console.WriteLine("Введите количество: ");
  11. int a = Convert.ToInt32(Console.ReadLine());
  12. List<int> columnOne = new List<int>();
  13. List<int> columnTwo = new List<int>();
  14. List<int> columnOneResult = new List<int>();
  15. List<int> columnTwoResult = new List<int>();
  16. List<int> listOfMax = new List<int>();
  17. for (int i = 0; i < a; i++)
  18. {
  19. columnOneResult.Add(0);
  20. columnTwoResult.Add(0);
  21. }
  22. for (int i = 0; i < a; i++)
  23. {
  24. Console.WriteLine("Введите: ");
  25. columnOne.Add(Convert.ToInt32(Console.ReadLine()));
  26. Console.WriteLine("Введите: ");
  27. columnTwo.Add(Convert.ToInt32(Console.ReadLine()));
  28. }
  29. int sumI = columnOne[0];
  30. int sumJ = 0;
  31. int count = 1;
  32. listOfMax.Add(sumI);
  33. for (int i = 1; i < a; i++)
  34. {
  35. sumI = sumI + columnOne[i];
  36. sumJ = sumJ + columnTwo[i - 1];
  37. max = sumI - sumJ;
  38. listOfMax.Add(max);
  39. max = listOfMax.Max();
  40. }
  41. Console.WriteLine("Время простоя первичном порядке равно: " + max);
  42. listOfMax.Clear();
  43. for (int i = 0; i < a; i++)
  44. {
  45. minimumOne = columnOne.Min();
  46. minimumTwo = columnTwo.Min();
  47. int minOneIndex = columnOne.IndexOf(minimumOne);
  48. int minTwoIndex = columnTwo.IndexOf(minimumTwo);
  49. for(int j = 0; j < columnOne.Count;j++)
  50. {
  51. if (columnOne[j]==minimumOne)
  52. {
  53. if (columnTwo[minOneIndex] < columnTwo[j])
  54. {
  55. minOneIndex = j;
  56. }
  57. }
  58. if (columnTwo[j]==minimumTwo)
  59. {
  60. if (columnOne[minTwoIndex] < columnOne[j])
  61. {
  62. minTwoIndex= j;
  63. }
  64. }
  65. }
  66. if (minimumOne < minimumTwo || minimumOne == minimumTwo)
  67. {
  68. columnOneResult.Insert(i,minimumOne);
  69. columnTwoResult.Insert(i,columnTwo[minOneIndex]);
  70. columnTwo.RemoveAt(minOneIndex);
  71. columnOne.RemoveAt(minOneIndex);
  72. }
  73. else
  74. {
  75. columnOneResult.Insert(a-1,columnOne[minTwoIndex]);
  76. columnTwoResult.Insert(a-1,minimumTwo);
  77. columnTwo.RemoveAt(minTwoIndex);
  78. columnOne.RemoveAt(minTwoIndex);
  79. count++;
  80. }
  81. }
  82. columnOneResult.RemoveAll(item => item == 0);
  83. columnTwoResult.RemoveAll(item => item == 0);
  84. for (int i = 0; i < columnOneResult.Count; i++)
  85. {
  86. Console.Write(columnOneResult[i] + " ");
  87. Console.Write(columnTwoResult[i]);
  88. Console.WriteLine();
  89. }
  90. sumI = columnOneResult[0];
  91. sumJ = 0;
  92. count = 1;
  93. listOfMax.Add(sumI);
  94. for (int i = 1; i < a; i++)
  95. {
  96. sumI = sumI + columnOneResult[i];
  97. sumJ = sumJ + columnTwoResult[i - 1];
  98. max = sumI - sumJ;
  99. listOfMax.Add(max);
  100. max = listOfMax.Max();
  101. }
  102. Console.WriteLine("Время простоя при оптимальной перестановке равно: " + max);
  103. }
  104. }
  105. }