Advertisement
AlexTasev

ArrayManipulator

Jun 18th, 2018
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.25 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace ArrayManipulator
  6. {
  7.     class Program
  8.     {
  9.         static void Main()
  10.         {
  11.             List<int> inputList = Console.ReadLine().Split().Select(int.Parse).ToList();
  12.  
  13.             while (true)
  14.             {
  15.                 string[] tokens = Console.ReadLine().Split();
  16.  
  17.                 string command = tokens[0];
  18.  
  19.                 if (command == "print")
  20.                     break;
  21.  
  22.                 switch (command)
  23.                 {
  24.                     case "add":
  25.                         int index = int.Parse(tokens[1]);
  26.                         int element = int.Parse(tokens[2]);
  27.                         inputList.Insert(index, element);
  28.                         break;
  29.  
  30.                     case "addMany":
  31.                         index = int.Parse(tokens[1]);
  32.                         List<int> elementsToAdd = new List<int>();
  33.                         AddMany(inputList, tokens, index, elementsToAdd);
  34.                         break;
  35.  
  36.                     case "contains":
  37.                         element = int.Parse(tokens[1]);
  38.                         ContainsPrintIndex(inputList, element);
  39.                         break;
  40.  
  41.                     case "remove":
  42.                         index = int.Parse(tokens[1]);
  43.                         inputList.RemoveAt(index);
  44.                         break;
  45.  
  46.                     case "shift":
  47.                         int positions = int.Parse(tokens[1]);
  48.                         ShiftList(inputList, positions);
  49.                         break;
  50.  
  51.                     case "sumPairs":
  52.                         SumPairs(inputList);
  53.                         break;
  54.                 }
  55.             }
  56.  
  57.             Console.WriteLine($"[{String.Join(", ", inputList)}]");
  58.         }
  59.  
  60.         private static void SumPairs(List<int> inputList)
  61.         {
  62.  
  63.             for (int i = 1; i < inputList.Count; i++)
  64.             {
  65.                 int sumedPair = 0;
  66.                 sumedPair = inputList[i] + inputList[i - 1];
  67.                 inputList.Insert(i - 1, sumedPair);
  68.                 inputList.RemoveRange(i, 2);
  69.             }
  70.         }
  71.  
  72.         private static void ShiftList(List<int> inputList, int positions)
  73.         {
  74.             for (int i = 0; i < positions; i++)
  75.             {
  76.                 inputList.Add(inputList[0]);
  77.                 inputList.RemoveAt(0);
  78.             }
  79.         }
  80.  
  81.         private static void ContainsPrintIndex(List<int> inputList, int element)
  82.         {
  83.             if (inputList.Contains(element))
  84.             {
  85.                 for (int i = 0; i < inputList.Count; i++)
  86.                 {
  87.                     if (inputList[i] == element)
  88.                     {
  89.                         Console.WriteLine(i);
  90.                     }
  91.                 }
  92.             }
  93.             else
  94.             {
  95.                 Console.WriteLine(-1);
  96.             }
  97.         }
  98.  
  99.         private static void AddMany(List<int> inputList, string[] tokens, int index, List<int> elementsToAdd)
  100.         {
  101.             for (int i = 2; i < tokens.Length; i++)
  102.             {
  103.                 elementsToAdd.Add(int.Parse(tokens[i]));
  104.             }
  105.  
  106.             inputList.InsertRange(index, elementsToAdd);
  107.         }
  108.     }
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement