MiroslavKisov

BombNumbers

Oct 20th, 2017
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.15 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 _07.BombNumbers
  8. {
  9.     public class StartUp
  10.     {
  11.         public static void Main(string[] args)
  12.         {
  13.             List<int> numbers = Console.ReadLine()
  14.                 .Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)
  15.                 .Select(int.Parse)
  16.                 .ToList();
  17.  
  18.             List<int> result = new List<int>();
  19.  
  20.             int[] commandArgs = Console.ReadLine()
  21.                 .Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)
  22.                 .Select(int.Parse)
  23.                 .ToArray();
  24.             int bombNumber = commandArgs[0];
  25.             int power = commandArgs[1];
  26.            
  27.  
  28.             while (numbers.Contains(bombNumber))
  29.             {
  30.                 int bombIndex = numbers.IndexOf(bombNumber);
  31.                 int leftSide = numbers.Count - (numbers.Count - bombIndex);
  32.                 int rightSide = numbers.Count - bombIndex - 1;
  33.  
  34.                 if (power > rightSide && power <= leftSide)
  35.                 {
  36.                     int explosionStartIndex = bombIndex - power;
  37.                     int explosionLength = rightSide + power + 1;
  38.                     numbers.RemoveRange(explosionStartIndex, explosionLength);
  39.                 }
  40.  
  41.                 if (power > leftSide && power <= rightSide)
  42.                 {
  43.                     int explosionStartIndex = 0;
  44.                     int explosionLength = leftSide + power + 1;
  45.                     numbers.RemoveRange(explosionStartIndex, explosionLength);
  46.                 }
  47.  
  48.                 if (power > leftSide && power > rightSide)
  49.                 {
  50.                     numbers.Clear();
  51.                 }
  52.  
  53.                 if (power <= leftSide && power <= rightSide)
  54.                 {
  55.                     int explosionStartIndex = bombIndex - power;
  56.                     int explosionLength = power * 2 + 1;
  57.                     numbers.RemoveRange(explosionStartIndex, explosionLength);
  58.                 }
  59.             }
  60.  
  61.             Console.WriteLine(numbers.Sum());
  62.          }
  63.     }
  64. }
Advertisement
Add Comment
Please, Sign In to add comment