fbinnzhivko

10. Array Manipulator

Jun 6th, 2016
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.07 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3. using System.Collections.Generic;
  4.  
  5. class Program
  6. {
  7.     static void Main()
  8.     {
  9.         List<int> a = Console.ReadLine().Split().Select(int.Parse).ToList();
  10.         string input = Console.ReadLine();
  11.  
  12.         while (!input.Contains("print"))
  13.         {
  14.             if (input.Contains("sumPairs"))
  15.                 SumPairs(ref a);
  16.             else if (input.Contains("add"))
  17.                 AddMany(ref a, input);
  18.             else if (input.Contains("contains"))
  19.                 Contains(a, input);
  20.             else if (input.Contains("shift"))
  21.                 Shift(ref a, input);
  22.             else if (input.Contains("remove"))
  23.                 Remove(ref a, input);
  24.  
  25.             input = Console.ReadLine();
  26.         }
  27.         Console.WriteLine("[{0}]", string.Join(", ", a));
  28.     }
  29.  
  30.     static void SumPairs(ref List<int> a)
  31.     {
  32.         int b = a.Count / 2;
  33.         for (int i = 0; i < b; i++)
  34.         {
  35.             a[i] += a[i + 1]; a.RemoveAt(i + 1);
  36.         }
  37.     }
  38.     static int[] SplitContent(string input)
  39.     {
  40.         string[] args = input.Split();
  41.         int[] arguments = new int[args.Length - 1];
  42.         for (int i = 1; i < args.Length; i++)
  43.         {
  44.             arguments[i - 1] = int.Parse(args[i]);
  45.         }
  46.         return arguments;
  47.     }
  48.     static void AddMany(ref List<int> a, string input)
  49.     {
  50.         int[] arguments = SplitContent(input);
  51.         a.InsertRange(arguments[0], arguments);
  52.         a.RemoveAt(arguments[0]);
  53.     }
  54.     static void Contains(List<int> a, string input)
  55.     {
  56.         int[] arguments = SplitContent(input);
  57.         Console.WriteLine(a.IndexOf(arguments[0]));
  58.     }
  59.     static void Shift(ref List<int> a, string input)
  60.     {
  61.         int[] arguments = SplitContent(input);
  62.         int b = arguments[0] % a.Count;
  63.         for (int i = 0; i < b; i++)
  64.         {
  65.             a.Add(a[0]); a.RemoveAt(0);
  66.         }
  67.     }
  68.     static void Remove(ref List<int> a, string input)
  69.     {
  70.         int[] arguments = SplitContent(input);
  71.         a.RemoveAt(arguments[0]);
  72.     }
  73. }
Add Comment
Please, Sign In to add comment