Advertisement
ivanov_ivan

ArrayManipulator

Oct 12th, 2017
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.17 KB | None | 0 0
  1. namespace ConsoleApp1
  2. {
  3.     using System;
  4.     using System.Collections.Generic;
  5.     using System.Linq;
  6.  
  7.     public class Program
  8.     {
  9.         public static void Main(string[] args)
  10.         {
  11.             List<int> numbers = Console.ReadLine().Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)
  12.                 .Select(int.Parse).ToList();
  13.  
  14.             string command = Console.ReadLine();
  15.  
  16.             while (command != "print")
  17.             {
  18.                 string[] longCommands = command.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
  19.                 switch (longCommands[0])
  20.                 {
  21.                     case "add":
  22.                         int index = int.Parse(longCommands[1]);
  23.                         int element = int.Parse(longCommands[2]);
  24.                         numbers.Insert(index, element);
  25.                         break;
  26.                     case "addMany":
  27.                         index = int.Parse(longCommands[1]);
  28.                         numbers.InsertRange(index, longCommands.Skip(2).Select(int.Parse).ToList());
  29.                         break;
  30.                     case "contains":
  31.                         element = int.Parse(longCommands[1]);
  32.                         Console.WriteLine(numbers.IndexOf(element));
  33.                         break;
  34.                     case "remove":
  35.                         index = int.Parse(longCommands[1]);
  36.                         numbers.RemoveAt(index);
  37.                         break;
  38.                     case "shift":
  39.                         int pos = int.Parse(longCommands[1]);
  40.                         for (int i = 0; i < pos; i++)
  41.                         {
  42.                             int temp = numbers[0];
  43.                             numbers.RemoveAt(0);
  44.                             numbers.Add(temp);
  45.                         }
  46.  
  47.                         break;
  48.                     case "sumPairs":
  49.                         List<int> tempList = new List<int>();
  50.  
  51.                         if (numbers.Count % 2 == 0)
  52.                         {
  53.                             for (int i = 0; i < numbers.Count; i += 2)
  54.                             {
  55.                                 int firstNumber = numbers[i];
  56.                                 int secondNumber = numbers[i + 1];
  57.                                 tempList.Add(firstNumber + secondNumber);
  58.                             }
  59.                         }
  60.                         else
  61.                         {
  62.                             for (int i = 0; i < numbers.Count - 1; i += 2)
  63.                             {
  64.                                 int firstNumber = numbers[i];
  65.                                 int secondNumber = numbers[i + 1];
  66.                                 tempList.Add(firstNumber + secondNumber);
  67.                             }
  68.  
  69.                             tempList.Add(numbers[numbers.Count - 1]);
  70.                         }
  71.                         numbers.Clear();
  72.                         numbers.AddRange(tempList);
  73.                         break;
  74.                 }
  75.                 command = Console.ReadLine();
  76.             }
  77.  
  78.             Console.WriteLine($"[{string.Join(", ", numbers)}]");
  79.         }
  80.     }
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement