Advertisement
mastersan12

Last Stop

Apr 2nd, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.19 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3.  
  4. namespace P04.Last_Stop
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             var numbers = Console.ReadLine().Split().Select(int.Parse).ToList();
  11.             string cmd;
  12.  
  13.             while ((cmd = Console.ReadLine()) != "END")
  14.             {
  15.                 string[] input = cmd.Split().ToArray();
  16.                 string cmd1 = input[0];
  17.  
  18.                 if (cmd1 == "Change")
  19.                 {
  20.                     int paintingNumber = int.Parse(input[1]);
  21.                     int changedNumber = int.Parse(input[2]);
  22.                     if (numbers.Contains(paintingNumber))
  23.                     {
  24.                         int number = numbers.IndexOf(paintingNumber);
  25.                         numbers.Insert(number, changedNumber);
  26.                         numbers.Remove(paintingNumber);
  27.                     }
  28.                 }
  29.                 else if (cmd1 == "Hide")
  30.                 {
  31.                     int paintingNumber = int.Parse(input[1]);
  32.                     if (numbers.Contains(paintingNumber))
  33.                     {
  34.                         numbers.Remove(paintingNumber);
  35.                     }
  36.                 }
  37.                 else if (cmd1 == "Switch")
  38.                 {
  39.                     int paintingNumber = int.Parse(input[1]);
  40.                     if (numbers.Contains(paintingNumber))
  41.                     {
  42.                         int paintingNumber1 = int.Parse(input[1]);
  43.                         int paintingNumber2 = int.Parse(input[2]);
  44.                         if (numbers.Contains(paintingNumber) && numbers.Contains(paintingNumber2))
  45.                         {
  46.                             int switch1Index = 0;
  47.                             int switch2Index = 0;
  48.                             for (int i = 0; i < numbers.Count; i++)
  49.                             {
  50.                                 if (numbers[i] == paintingNumber1)
  51.                                 {
  52.                                     switch1Index = i;
  53.                                 }
  54.                                 if (numbers[i] == paintingNumber2)
  55.                                 {
  56.                                     switch2Index = i;
  57.                                 }
  58.  
  59.                             }
  60.                             numbers.Insert(switch2Index + 1, paintingNumber1);
  61.                             numbers.RemoveAt(switch2Index);
  62.                             numbers.Insert(switch1Index + 1, paintingNumber2);
  63.                             numbers.RemoveAt(switch1Index);
  64.                         }
  65.                     }
  66.                 }
  67.                 else if (cmd1 == "Insert")
  68.                 {
  69.                     int place = int.Parse(input[1]);
  70.                     int paintingNumber = int.Parse(input[2]);
  71.                     if (place > -1 && place < numbers.Count)
  72.                     {
  73.                         numbers.Insert(place + 1, paintingNumber);
  74.                     }
  75.                 }
  76.                 else if (cmd1 == "Reverse")
  77.                 {
  78.                     numbers.Reverse();
  79.                 }
  80.             }
  81.             Console.WriteLine(string.Join(" ", numbers));
  82.         }
  83.     }
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement