Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Linq;
- namespace P04.Last_Stop
- {
- class Program
- {
- static void Main(string[] args)
- {
- var numbers = Console.ReadLine().Split().Select(int.Parse).ToList();
- string cmd;
- while ((cmd = Console.ReadLine()) != "END")
- {
- string[] input = cmd.Split().ToArray();
- string cmd1 = input[0];
- if (cmd1 == "Change")
- {
- int paintingNumber = int.Parse(input[1]);
- int changedNumber = int.Parse(input[2]);
- if (numbers.Contains(paintingNumber))
- {
- int number = numbers.IndexOf(paintingNumber);
- numbers.Insert(number, changedNumber);
- numbers.Remove(paintingNumber);
- }
- }
- else if (cmd1 == "Hide")
- {
- int paintingNumber = int.Parse(input[1]);
- if (numbers.Contains(paintingNumber))
- {
- numbers.Remove(paintingNumber);
- }
- }
- else if (cmd1 == "Switch")
- {
- int paintingNumber = int.Parse(input[1]);
- if (numbers.Contains(paintingNumber))
- {
- int paintingNumber1 = int.Parse(input[1]);
- int paintingNumber2 = int.Parse(input[2]);
- if (numbers.Contains(paintingNumber) && numbers.Contains(paintingNumber2))
- {
- int switch1Index = 0;
- int switch2Index = 0;
- for (int i = 0; i < numbers.Count; i++)
- {
- if (numbers[i] == paintingNumber1)
- {
- switch1Index = i;
- }
- if (numbers[i] == paintingNumber2)
- {
- switch2Index = i;
- }
- }
- numbers.Insert(switch2Index + 1, paintingNumber1);
- numbers.RemoveAt(switch2Index);
- numbers.Insert(switch1Index + 1, paintingNumber2);
- numbers.RemoveAt(switch1Index);
- }
- }
- }
- else if (cmd1 == "Insert")
- {
- int place = int.Parse(input[1]);
- int paintingNumber = int.Parse(input[2]);
- if (place > -1 && place < numbers.Count)
- {
- numbers.Insert(place + 1, paintingNumber);
- }
- }
- else if (cmd1 == "Reverse")
- {
- numbers.Reverse();
- }
- }
- Console.WriteLine(string.Join(" ", numbers));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement