Advertisement
Guest User

Untitled

a guest
Oct 26th, 2019
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.20 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3.  
  4. namespace _11._Array_Manipulator
  5. {
  6. class Program
  7. {
  8. static void Main(string[] args)
  9. {
  10. int[] array = Console.ReadLine()
  11. .Split(" ")
  12. .Select(int.Parse)
  13. .ToArray();
  14. string command = Console.ReadLine();
  15.  
  16. while(command != "end")
  17. {
  18. string[] input = command.Split(" ");
  19.  
  20.  
  21. switch (input[0])
  22. {
  23. case "exchange":
  24. int count = int.Parse(input[1]);
  25. Exchange(array, count);
  26. break;
  27. case "max":
  28. if (MaxEvenOdd(array, input[1]) != -1)
  29. {
  30. Console.WriteLine(MaxEvenOdd(array, input[1]));
  31. }
  32. else
  33. {
  34. Console.WriteLine("No matches");
  35. }
  36.  
  37. break;
  38. case "min":
  39. if (MaxEvenOdd(array, input[1]) != -1)
  40. {
  41. Console.WriteLine(MinEvenOdd(array, input[1]));
  42. }
  43. else
  44. {
  45. Console.WriteLine("No matches");
  46. }
  47.  
  48. break;
  49. case "first":
  50.  
  51. count = int.Parse(input[1]);
  52. if (count > array.Length)
  53. {
  54. Console.WriteLine("Invalid count");
  55. }
  56. else
  57. {
  58. Console.WriteLine(firstCountEvenOdd(array, count, input[2]));
  59. }
  60. break;
  61. case "last":
  62. break;
  63. }
  64. Console.WriteLine(String.Join(" ", array));
  65. command = Console.ReadLine();
  66.  
  67.  
  68. }
  69.  
  70. static int[] Exchange(int[] array, int count)
  71. {
  72.  
  73. for (int currrentExhange = 0; currrentExhange < count; currrentExhange++)
  74. {
  75.  
  76. int firstNum = array[0];
  77. for (int currentIndex = 1; currentIndex < array.Length; currentIndex++)
  78. {
  79. array[currentIndex - 1] = array[currentIndex];
  80. }
  81. array[array.Length - 1] = firstNum;
  82. }
  83.  
  84. return array;
  85. }
  86.  
  87. static int MaxEvenOdd(int[] array, string demand)
  88. {
  89. int maxEven = int.MinValue;
  90. int maxEvenIndex = -1;
  91. int maxOdd = int.MinValue;
  92. int maxOddIndex = -1;
  93.  
  94. for (int currentIndex = array.Length - 1; currentIndex >= 0; currentIndex--)
  95. {
  96. if (array[currentIndex] % 2 == 0 && array[currentIndex] > maxEven)
  97. {
  98. maxEven = array[currentIndex];
  99. maxEvenIndex = currentIndex;
  100. }
  101. else if (array[currentIndex] % 2 != 0 && array[currentIndex] > maxOdd)
  102. {
  103. maxOdd = array[currentIndex];
  104. maxOddIndex = currentIndex;
  105. }
  106. }
  107. if (demand == "even")
  108. {
  109. return maxEvenIndex;
  110. }
  111. else
  112. {
  113. return maxOddIndex;
  114. }
  115. }
  116.  
  117. static int MinEvenOdd (int[] array, string demand)
  118. {
  119. int minEven = int.MaxValue;
  120. int minEvenIndex = -1;
  121. int minOdd = int.MinValue;
  122. int minOddIndex = -1;
  123.  
  124. for (int currentIndex = array.Length - 1; currentIndex >= 0 ; currentIndex--)
  125. {
  126. if (array[currentIndex] % 2 == 0 && array[currentIndex] < minEven)
  127. {
  128. minEven = array[currentIndex];
  129. minEvenIndex = currentIndex;
  130. }
  131. else if (array[currentIndex] % 2 != 0 && array[currentIndex] < minOdd)
  132. {
  133. minOdd = array[currentIndex];
  134. minOddIndex = currentIndex;
  135. }
  136. }
  137.  
  138. if (demand == "even")
  139. {
  140. return minEvenIndex;
  141. }
  142. else
  143. {
  144. return minOddIndex;
  145. }
  146. }
  147.  
  148. static int[] firstCountEvenOdd(int[] array, int count, string evenOrOdd)
  149. {
  150. int[] firstEvenOdd = new int[count];
  151.  
  152. int evenCount = 0;
  153. int oddCount = 0;
  154. for (int currentIndex = 0; currentIndex < array.Length; currentIndex++)
  155. {
  156. if (evenOrOdd == "even" && array[currentIndex] % 2 == 0)
  157. {
  158. evenCount++;
  159. firstEvenOdd[evenCount - 1] = array[currentIndex];
  160.  
  161. if (evenCount == count)
  162. {
  163. return firstEvenOdd;
  164. }
  165. }
  166. else if (evenOrOdd == "odd" && array[currentIndex] % 2 != 0)
  167. {
  168. oddCount++;
  169. firstEvenOdd[oddCount - 1] = array[currentIndex];
  170.  
  171. if (oddCount == count)
  172. {
  173. return firstEvenOdd;
  174. }
  175. }
  176. else
  177. {
  178. return firstEvenOdd;
  179. }
  180. }
  181. }
  182. }
  183. }
  184. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement