Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace _10._03._2019_Mid_Exam
- {
- class LastStop
- {
- static void Main(string[] args)
- {
- List<int> numbers = Console.ReadLine()
- .Split()
- .Select(int.Parse)
- .ToList();
- string command = Console.ReadLine();
- while (command != "END")
- {
- string[] instructions = command.Split();
- string currentInstruction = instructions[0];
- if (currentInstruction == "Reverse")
- {
- numbers.Reverse();
- }
- else if (instructions.Length - 1 > 0)
- {
- int paintingNumber = int.Parse(instructions[1]);
- if (currentInstruction == "Change")
- {
- if (numbers.Contains(paintingNumber))
- {
- int changeNumber = int.Parse(instructions[2]);
- int currentIndex = numbers.IndexOf(paintingNumber);
- numbers.Remove(paintingNumber);
- numbers.Insert(currentIndex, changeNumber);
- }
- else
- {
- command = Console.ReadLine();
- continue;
- }
- }
- else if (currentInstruction == "Hide")
- {
- if (numbers.Contains(paintingNumber))
- {
- numbers.Remove(paintingNumber);
- }
- else
- {
- command = Console.ReadLine();
- continue;
- }
- }
- else if (currentInstruction == "Switch")
- {
- int secondPaintingNumber = int.Parse(instructions[2]);
- bool isContains = numbers.Contains(paintingNumber) && numbers.Contains(secondPaintingNumber);
- if (isContains)
- {
- int currentPaintIndex = numbers.IndexOf(paintingNumber);
- int changePaintIndex = numbers.IndexOf(secondPaintingNumber);
- numbers.RemoveAt(currentPaintIndex);
- numbers.Insert(currentPaintIndex, secondPaintingNumber);
- numbers.RemoveAt(changePaintIndex);
- numbers.Insert(changePaintIndex, paintingNumber);
- }
- else
- {
- command = Console.ReadLine();
- continue;
- }
- }
- else if (currentInstruction == "Insert")
- {
- int index = paintingNumber + 1;
- paintingNumber = int.Parse(instructions[2]);
- bool isInside = 0 <= index && index <= numbers.Count - 1;
- if (isInside)
- {
- numbers.Insert(index, paintingNumber);
- }
- else
- {
- command = Console.ReadLine();
- continue;
- }
- }
- }
- command = Console.ReadLine();
- }
- Console.WriteLine(string.Join(' ', numbers));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment