MeGaDeTH_91

02. Pokemon Don't Go

Jul 10th, 2017
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.13 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.  
  7. namespace _02.Pokemon_Don_t_Go
  8. {
  9. class Program
  10. {
  11. static void Main(string[] args)
  12. {
  13. List<long> numArr = Console.ReadLine()
  14. .Split().Select(long.Parse)
  15. .ToList();
  16.  
  17. long sumOfRemoved = 0;
  18. bool valid = false;
  19. bool lessThanZero = false;
  20. bool moreThanList = false;
  21. if(numArr.Count > 0)
  22. {
  23. while (true)
  24. {
  25. if (numArr.Count == 0)
  26. {
  27. Console.WriteLine(sumOfRemoved);
  28. return;
  29. }
  30. int removeIndex = int.Parse(Console.ReadLine());
  31. valid = CheckIfIndexIsValid(removeIndex, numArr);
  32. lessThanZero = CheckIfIndexIsLess(removeIndex, numArr);
  33. moreThanList = CheckIfIndexIsGreater(removeIndex, numArr);
  34. long currRemoveNum = 0;
  35.  
  36. if (valid)
  37. {
  38. currRemoveNum = numArr[removeIndex];
  39. sumOfRemoved += numArr[removeIndex];
  40. numArr.RemoveAt(removeIndex);
  41. for (int i = 0; i < numArr.Count; i++)
  42. {
  43. if(numArr[i] <= currRemoveNum)
  44. {
  45. numArr[i] += currRemoveNum;
  46. }
  47. else if(numArr[i] > currRemoveNum)
  48. {
  49. numArr[i] -= currRemoveNum;
  50. }
  51. }
  52. }
  53. else if(lessThanZero)
  54. {
  55. currRemoveNum = numArr[0];
  56. sumOfRemoved += numArr[0];
  57. numArr.RemoveAt(0);
  58. for (int i = 0; i < numArr.Count; i++)
  59. {
  60. if (numArr[i] <= currRemoveNum)
  61. {
  62. numArr[i] += currRemoveNum;
  63. }
  64. else if (numArr[i] > currRemoveNum)
  65. {
  66. numArr[i] -= currRemoveNum;
  67. }
  68. }
  69. numArr.Insert(0, numArr[numArr.Count - 1]);
  70. }
  71. else if(moreThanList)
  72. {
  73. currRemoveNum = numArr[numArr.Count- 1];
  74. sumOfRemoved += numArr[numArr.Count - 1];
  75. numArr.RemoveAt(numArr.Count - 1);
  76. for (int i = 0; i < numArr.Count; i++)
  77. {
  78. if (numArr[i] <= currRemoveNum)
  79. {
  80. numArr[i] += currRemoveNum;
  81. }
  82. else if (numArr[i] > currRemoveNum)
  83. {
  84. numArr[i] -= currRemoveNum;
  85. }
  86. }
  87. numArr.Add(numArr[0]);
  88. }
  89. }
  90. }
  91. else
  92. {
  93. Console.WriteLine(sumOfRemoved);
  94. }
  95. }
  96.  
  97. private static bool CheckIfIndexIsValid(int removeIndex, List<long> numArr)
  98. {
  99. var result = removeIndex >= 0 && removeIndex < numArr.Count;
  100. return result;
  101. }
  102. private static bool CheckIfIndexIsGreater(int removeIndex, List<long> numArr)
  103. {
  104. var result = removeIndex >= numArr.Count;
  105. return result;
  106. }
  107. private static bool CheckIfIndexIsLess(int removeIndex, List<long> numArr)
  108. {
  109. var result = removeIndex < 0;
  110. return result;
  111. }
  112. }
  113. }
Advertisement
Add Comment
Please, Sign In to add comment