Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Linq;
- public class Program
- {
- public static void Main()
- {
- int fieldSize = int.Parse(Console.ReadLine());
- bool[] field = InitField(fieldSize);
- string input;
- while (!(input = Console.ReadLine()).Equals("end"))
- {
- var data = input.Split();
- int index = int.Parse(data[0]);
- int flyLength = int.Parse(data[2]);
- if (ValidIndex(index, fieldSize) && field[index])
- {
- if (data[1].Equals("left"))
- {
- flyLength = -flyLength;
- }
- field[index] = false;
- do
- {
- index += flyLength;
- } while (ValidIndex(index, fieldSize) && field[index]);
- if (ValidIndex(index, fieldSize))
- {
- field[index] = true;
- }
- }
- }
- Console.WriteLine(string.Join(" ", field.Select(a => a ? 1 : 0)));
- }
- private static bool[] InitField(int fieldSize)
- {
- var field = new bool[fieldSize];
- var indexes = Console.ReadLine()
- .Split()
- .Select(int.Parse)
- .Where(i => i >= 0 && i < fieldSize);
- foreach (var index in indexes)
- {
- field[index] = true;
- }
- return field;
- }
- private static bool ValidIndex(int index, int fieldSize)
- {
- return index >= 0 && index < fieldSize;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement