Guest User

Untitled

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