Advertisement
miroLLL

05Problem-ArrayManipulator

Feb 9th, 2018
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.21 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace _05Problem_ArrayManipulator
  7. {
  8.     class Program
  9.     {
  10.         static void Main(string[] args)
  11.         {
  12.             List<int> inputNumbers = Console.ReadLine().Split(' ').Select(int.Parse).ToList();
  13.  
  14.             string[] inputCommand = Console.ReadLine().Split(' ');
  15.  
  16.             while (!(inputCommand[0].Equals("print")))
  17.             {
  18.  
  19.                 switch (inputCommand[0])
  20.                 {
  21.                     case "add":
  22.  
  23.                         int indexOnAdd = int.Parse(inputCommand[1]);
  24.                         int addingNumber = int.Parse(inputCommand[2]);
  25.  
  26.                         inputNumbers.Insert(indexOnAdd, addingNumber);
  27.                         break;
  28.  
  29.                     case "addMany":
  30.  
  31.                         int indexOnAddMany = int.Parse(inputCommand[1]);
  32.                         int[] addManyNumbers = new int[inputCommand.Length - 2];
  33.  
  34.                         for (int i = 0; i < addManyNumbers.Length; i++)
  35.                         {
  36.                             addManyNumbers[i] = int.Parse(inputCommand[i + 2]);
  37.                         }
  38.  
  39.                         inputNumbers.InsertRange(indexOnAddMany, addManyNumbers);
  40.                         break;
  41.  
  42.                     case "contains":
  43.  
  44.                         Console.WriteLine(inputNumbers.FindIndex(number => number == int.Parse(inputCommand[1])));
  45.                         break;
  46.  
  47.                     case "remove":
  48.  
  49.                         inputNumbers.RemoveAt(int.Parse(inputCommand[1]));
  50.                         break;
  51.  
  52.                     case "shift":
  53.  
  54.                         int shiftPositions = int.Parse(inputCommand[1]);
  55.  
  56.                         for (int i = 0; i < shiftPositions; i++)
  57.                         {
  58.                             inputNumbers.Insert(inputNumbers.Count, inputNumbers[0]);
  59.                             inputNumbers.RemoveAt(0);
  60.                         }
  61.                         break;
  62.  
  63.                     case "sumPairs":
  64.  
  65.                         int endOfLoop = inputNumbers.Count / 2;
  66.  
  67.                         for (int i = 0; i < endOfLoop; i++)
  68.                         {
  69.                             inputNumbers[i] += inputNumbers[i + 1];
  70.                             inputNumbers.RemoveAt(i + 1);
  71.                         }
  72.                         break;
  73.                 }
  74.  
  75.                 inputCommand = Console.ReadLine().Split(' ');
  76.  
  77.             }
  78.  
  79.             PrintLastStateOfTheArray(inputNumbers);
  80.         }
  81.  
  82.         static void PrintLastStateOfTheArray(List<int> inputNumbers)
  83.         {
  84.             for (int i = 0; i < inputNumbers.Count; i++)
  85.             {
  86.                 if ((i != inputNumbers.Count - 1) && (i != 0))
  87.                 {
  88.                     Console.Write(inputNumbers[i] + ", ");
  89.  
  90.                 }
  91.                 else if (i == inputNumbers.Count - 1)
  92.                 {
  93.                     Console.Write(inputNumbers[i] + "]");
  94.  
  95.                 }
  96.                 else
  97.                 {
  98.                     Console.Write("[" + inputNumbers[i] + ", ");
  99.  
  100.                 }
  101.             }
  102.             Console.WriteLine();
  103.         }
  104.     }
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement