Advertisement
red_dragon_1

LadyBugs

Jun 16th, 2019
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.70 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3. namespace LadyBugs
  4. {
  5.     class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             int fieldSize = int.Parse(Console.ReadLine());
  10.  
  11.             int[] bugsInFieldstr = Console.ReadLine()
  12.                 .Split(" ")
  13.                 .Select(int.Parse)
  14.                 .ToArray();
  15.  
  16.             int[] BugsField = new int[fieldSize];
  17.  
  18.             for (int i = 0; i < bugsInFieldstr.Length; i++)
  19.             {
  20.                 if (bugsInFieldstr[i] < fieldSize && bugsInFieldstr[i] >= 0)
  21.                 {
  22.                     BugsField[bugsInFieldstr[i]] = 1;
  23.                 }
  24.  
  25.             }
  26.  
  27.             string moveBugsCom = Console.ReadLine();
  28.  
  29.             while (moveBugsCom != "end")
  30.             {
  31.                 string[] moveBugsCommand = moveBugsCom
  32.                 .Split(" ", StringSplitOptions.RemoveEmptyEntries)
  33.                 .ToArray(); ;
  34.  
  35.                 int indexIsFreeCheck = int.Parse(moveBugsCommand[0]);
  36.                 int flyTimes = int.Parse(moveBugsCommand[2]);
  37.  
  38.                 if (indexIsFreeCheck >= BugsField.Length
  39.                     || indexIsFreeCheck < 0
  40.                     || flyTimes <= 0
  41.                     || BugsField[indexIsFreeCheck] != 1)
  42.                 {
  43.                     //do nothing :)
  44.                 }
  45.                
  46.                 else if (moveBugsCommand[1] == "right")
  47.                 {
  48.                     if (flyTimes < 0)
  49.                     {
  50.  
  51.                         MoveLeft(moveBugsCommand, BugsField);
  52.  
  53.                     }
  54.                     else
  55.                     {
  56.                         MoveRight(moveBugsCommand, BugsField);
  57.                     }
  58.  
  59.                 }
  60.  
  61.                 else if (moveBugsCommand[2] == "left")
  62.                 {
  63.                     if (flyTimes < 0)
  64.                     {
  65.                         MoveRight(moveBugsCommand, BugsField);
  66.  
  67.                     }
  68.                     else
  69.                     {
  70.                         MoveLeft(moveBugsCommand, BugsField);
  71.                     }
  72.                 }
  73.  
  74.                 moveBugsCom = Console.ReadLine();
  75.             }
  76.  
  77.             Console.WriteLine(string.Join(" ", BugsField));
  78.         }
  79.  
  80.         static void MoveRight(string[] moveBugsCommand, int[] BugsField)
  81.         {
  82.  
  83.             int startBugIndex = int.Parse(moveBugsCommand[0]);
  84.             int flyTimes = int.Parse(moveBugsCommand[2]);
  85.  
  86.             for (int i = startBugIndex; i < BugsField.Length; i += flyTimes)
  87.             {
  88.  
  89.                 if (i + flyTimes >= BugsField.Length)
  90.                 {
  91.                     BugsField[startBugIndex] = 0;
  92.                     break;
  93.                 }
  94.  
  95.                 else if (BugsField[i + flyTimes] == 0 && i + flyTimes < BugsField.Length)
  96.                 {
  97.                     BugsField[startBugIndex] = 0;
  98.                     BugsField[i + flyTimes] = 1;
  99.                     break;
  100.                 }
  101.             }
  102.         }
  103.         static void MoveLeft(string[] moveBugsCommand, int[] BugsField)
  104.         {
  105.  
  106.             int startBugIndex = int.Parse(moveBugsCommand[0]);
  107.             int flyTimes = int.Parse(moveBugsCommand[2]);
  108.  
  109.             for (int i = startBugIndex; i < BugsField.Length; i -= flyTimes)
  110.             {
  111.  
  112.                 if (i - flyTimes < 0)
  113.                 {
  114.                     BugsField[startBugIndex] = 0;
  115.                     break;
  116.                 }
  117.  
  118.                 else if (BugsField[i - flyTimes] == 0 && i - flyTimes >= 0)
  119.                 {
  120.                     BugsField[startBugIndex] = 0;
  121.                     BugsField[i - flyTimes] = 1;
  122.                     break;
  123.                 }
  124.             }
  125.         }
  126.     }
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement