SHARE
TWEET

Untitled

a guest Jun 7th, 2016 129 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. class ArrayManipulator
  6. {
  7.     static void Main(string[] args)
  8.     {
  9.         List<int> numbers= Console.ReadLine().Split(' ').Select(int.Parse).ToList();
  10.  
  11.         string command = "";
  12.              
  13.         while (command != "print")
  14.         {
  15.             string[] input = Console.ReadLine().Split(' ').ToArray();
  16.  
  17.             command = input[0];
  18.             int index = 0;
  19.             int element = 0;
  20.                        
  21.             switch (command)
  22.             {
  23.                 case "add":
  24.                     index = Convert.ToInt32(input[1]);
  25.                     element = Convert.ToInt32(input[2]);
  26.                     Add(numbers, index, element);
  27.                     break;
  28.                 case "addMany":
  29.                     index = Convert.ToInt32(input[1]);
  30.                     int[] elements = new int[input.Length-2];
  31.                     for (int i = 2; i < input.Length; i++)
  32.                     {
  33.                         elements[i-2]= Convert.ToInt32(input[i]);
  34.                     }
  35.                     AddManyElements(numbers, index, elements);
  36.                     break;
  37.                 case "contains":
  38.                     element = Convert.ToInt32(input[1]);                    
  39.                     Console.WriteLine(Contains(numbers, element));
  40.                     break;
  41.                 case "remove":
  42.                     index = Convert.ToInt32(input[1]);
  43.                     RemovesElement(numbers, index);
  44.                     break;
  45.                 case "shift":
  46.                     int positions = Convert.ToInt32(input[1]);
  47.                     numbers = ShiftElementsWithNPositions(numbers, positions);
  48.                     break;
  49.                 case "sumPairs":
  50.                     SumPairs(numbers);
  51.                     break;
  52.                 case "print":
  53.                     PrintArray(numbers);
  54.                     break;
  55.                 default:
  56.                     break;
  57.             }
  58.  
  59.         }
  60.        
  61.     }
  62.  
  63.     static List<int> SumPairs(List<int> numbers)
  64.     {        
  65.         if(numbers.Count % 2 == 0)
  66.         {
  67.             for (int i = 0; i < numbers.Count-1; i++)
  68.             {
  69.                 int sum = numbers[i] + numbers[i + 1];
  70.                 numbers[i] = sum;
  71.                 numbers.RemoveAt(i + 1);                
  72.             }
  73.         }
  74.         else
  75.         {
  76.             for (int i = 0; i < numbers.Count-2; i++)
  77.             {
  78.                 int sum = numbers[i] + numbers[i + 1];
  79.                 numbers[i] = sum;
  80.                 numbers.RemoveAt(i + 1);
  81.             }
  82.         }
  83.         return numbers;
  84.     }
  85.  
  86.     static List<int> ShiftElementsWithNPositions(List<int> nums, int positions)
  87.     {
  88.         int[] numsArr = new int[nums.Count];
  89.         for (int currentPosition = 0; currentPosition < positions; currentPosition++)
  90.         {
  91.             int firstElement = nums[0];            
  92.             for (int i = 0; i < nums.Count-1; i++)
  93.             {              
  94.                 numsArr[i] = nums[i+1];                
  95.             }
  96.             numsArr[numsArr.Length-1]=firstElement;
  97.             nums = new List<int>(numsArr);            
  98.         }
  99.         return nums;
  100.     }
  101.  
  102.     static List<int> RemovesElement(List<int> numbers, int index)
  103.     {
  104.         numbers.RemoveAt(index);
  105.         return numbers;
  106.     }
  107.  
  108.     static int Contains(List<int> numbers, int element)
  109.     {
  110.         int result = -1;
  111.         if (numbers.Contains(element))
  112.             result = numbers.IndexOf(element);
  113.         return result;
  114.     }
  115.  
  116.     static List<int> AddManyElements(List<int> numbers, int index, int[] elements)
  117.     {      
  118.         for (int i = elements.Length-1; i >= 0; i--)
  119.         {
  120.             numbers.Insert(index, elements[i]);
  121.         }        
  122.         return numbers;
  123.     }
  124.  
  125.     static List<int> Add(List<int> numbers, int index, int element)
  126.     {
  127.         numbers.Insert(index, element);
  128.         return numbers;
  129.     }
  130.  
  131.     static void PrintArray(List<int> numbers)
  132.     {
  133.         Console.WriteLine("[" + string.Join(", ",numbers) + "]");
  134.     }    
  135. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top