Advertisement
Again_89

Untitled

Dec 8th, 2018
370
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.02 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 _10_LadyBugs
  8. {
  9. class Program
  10. {
  11. static void Main(string[] args)
  12. {
  13. int fieldLenght = int.Parse(Console.ReadLine());
  14.  
  15. int[] field = new int[fieldLenght];
  16.  
  17. int[] bugsIndexes = Console.ReadLine().Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToArray();
  18.  
  19. for (int i = 0; i < bugsIndexes.Length; i++)
  20. {
  21. if (bugsIndexes[i] > field.Length - 1 || bugsIndexes[i] < 0)
  22. {
  23. continue;
  24. }
  25. else
  26. {
  27. field[bugsIndexes[i]] = 1;
  28. }
  29. }
  30.  
  31. string command = string.Empty;
  32.  
  33. while (true)
  34. {
  35. command = Console.ReadLine();
  36. if (command == "end")
  37. {
  38. break;
  39. }
  40.  
  41. string[] flyLenght = command.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
  42.  
  43. int index = int.Parse(flyLenght[0]);
  44. int moveLenght = int.Parse(flyLenght[2]);
  45. string direction = flyLenght[1];
  46.  
  47. int moveLenghtOriginal = moveLenght;
  48.  
  49. if (index >= 0 && index < field.Length)
  50. {
  51. if (direction == "right" && field[index] == 1 && moveLenght > 0)
  52. {
  53. if (index == field.Length - 1)
  54. {
  55. field[index] = 0;
  56. continue;
  57. }
  58.  
  59. else
  60. {
  61. field[index] = 0;
  62.  
  63. for (int i = index + 1; i < field.Length; i++)
  64. {
  65. if (field[i] == 1)
  66. {
  67. moveLenght = moveLenghtOriginal;
  68. }
  69. else if (field[i] != 1)
  70. {
  71. moveLenght--;
  72. }
  73.  
  74. if (moveLenght == 0)
  75. {
  76. field[i] = 1;
  77. }
  78. }
  79. }
  80.  
  81. }
  82. else if (direction == "right" && field[index] == 1 && moveLenght < 0)
  83. {
  84. if (index == 0)
  85. {
  86. field[index] = 0;
  87. continue;
  88. }
  89. else
  90. {
  91. field[index] = 0;
  92.  
  93. for (int i = index - 1; i >= 0; i--)
  94. {
  95. if (field[i] == 1)
  96. {
  97. moveLenght = moveLenghtOriginal;
  98. }
  99. else if (field[i] != 1)
  100. {
  101. moveLenght++;
  102. }
  103. if (moveLenght == 0)
  104. {
  105. field[i] = 1;
  106. }
  107. }
  108. }
  109. }
  110. else if (direction == "left" && field[index] == 1 && moveLenght > 0)
  111. {
  112. if (index == 0)
  113. {
  114. field[index] = 0;
  115. continue;
  116. }
  117. else
  118. {
  119. field[index] = 0;
  120.  
  121. for (int i = index - 1; i >= 0; i--)
  122. {
  123. if (field[i] == 1)
  124. {
  125. moveLenght = moveLenghtOriginal;
  126. }
  127. else if (field[i] != 1)
  128. {
  129. moveLenght--;
  130. }
  131. if (moveLenght == 0)
  132. {
  133. field[i] = 1;
  134. }
  135. }
  136. }
  137. }
  138. else if (direction == "left" && field[index] == 1 && moveLenght < 0)
  139. {
  140. if (index == field.Length - 1)
  141. {
  142. field[index] = 0;
  143. continue;
  144. }
  145. else
  146. {
  147. field[index] = 0;
  148.  
  149. for (int i = index + 1; i < field.Length; i++)
  150. {
  151. if (field[i] == 1)
  152. {
  153. moveLenght = moveLenghtOriginal;
  154. }
  155. else if (field[i] != 1)
  156. {
  157. moveLenght++;
  158. }
  159. if (moveLenght == 0)
  160. {
  161. field[i] = 1;
  162. }
  163. }
  164. }
  165. }
  166. }
  167.  
  168.  
  169. }
  170.  
  171. Console.WriteLine(string.Join(" ", field));
  172. }
  173. }
  174. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement