Advertisement
krasi1105

Ladybugs

May 21st, 2017
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.54 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3. public class Program
  4. {
  5.     public static void Main()
  6.     {
  7.         int fieldSize = int.Parse(Console.ReadLine());
  8.         bool[] field = InitField(fieldSize);
  9.         string input;
  10.         while (!(input = Console.ReadLine()).Equals("end"))
  11.         {
  12.             var data = input.Split();
  13.             int index = int.Parse(data[0]);
  14.             int flyLength = int.Parse(data[2]);
  15.             if (ValidIndex(index, fieldSize) && field[index])
  16.             {
  17.                 if (data[1].Equals("left"))
  18.                 {
  19.                     flyLength = -flyLength;
  20.                 }
  21.  
  22.                 field[index] = false;
  23.                 do
  24.                 {
  25.                     index += flyLength;
  26.                 } while (ValidIndex(index, fieldSize) && field[index]);
  27.  
  28.                 if (ValidIndex(index, fieldSize))
  29.                 {
  30.                     field[index] = true;
  31.                 }
  32.             }
  33.         }
  34.  
  35.         Console.WriteLine(string.Join(" ", field.Select(a => a ? 1 : 0)));
  36.     }
  37.  
  38.     private static bool[] InitField(int fieldSize)
  39.     {
  40.         var field = new bool[fieldSize];
  41.         var indexes = Console.ReadLine()
  42.             .Split()
  43.             .Select(int.Parse)
  44.             .Where(i => i >= 0 && i < fieldSize);
  45.         foreach (var index in indexes)
  46.         {
  47.             field[index] = true;
  48.         }
  49.         return field;
  50.     }
  51.     private static bool ValidIndex(int index, int fieldSize)
  52.     {
  53.         return index >= 0 && index < fieldSize;
  54.     }
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement