Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Text.RegularExpressions;
- using System.Threading.Tasks;
- namespace _02.Command_interpreter
- {
- class CommandInterpreter80points
- {
- static void Main(string[] args)
- {
- var input = Console.ReadLine().Split(' ').ToArray();
- string command = Console.ReadLine();
- while (!command.Equals("end"))
- {
- var elements = command.Split(' ').ToArray();
- if (elements[0] == "reverse")
- {
- ReverseArray(input, elements);
- }
- else if (elements[0] == "sort")
- {
- SortArray(input, elements);
- }
- else if (elements[0] == "rollRight")
- {
- RollRight(input, elements);
- }
- else if (elements[0] == "rollLeft")
- {
- RollLeft(input, elements);
- }
- command = Console.ReadLine();
- }
- Console.WriteLine("[{0}]", string.Join(", ", input).TrimEnd());
- }
- private static void RollLeft(string[] input, string[] elements)
- {
- long numOfRotations = long.Parse(elements[1]) % input.Length;
- for (int currentElement = 0; currentElement < numOfRotations; currentElement++)
- {
- var firstElement = input[0];
- Array.Copy(input, 1, input, 0, input.Length - 1);
- input[input.Length - 1] = firstElement;
- }
- }
- private static void RollRight(string[] input, string[] elements)
- {
- long numOfRotations = long.Parse(elements[1]) % input.Length;
- for (int currentElement = 0; currentElement < numOfRotations; currentElement++)
- {
- var lastElement = input[input.Length - 1];
- Array.Copy(input, 0, input, 1, input.Length - 1);
- input[0] = lastElement;
- }
- }
- private static void SortArray(string[] input, string[] elements)
- {
- int startIndex = int.Parse(elements[2]);
- int endIndex = int.Parse(elements[4]);
- if (startIndex >= input.Length || startIndex < 0 || startIndex + endIndex > input.Length||endIndex<0)
- {
- Console.WriteLine("Invalid input parameters.");
- }
- else
- {
- Array.Sort(input,startIndex, endIndex);
- }
- }
- private static void ReverseArray(string[] input, string[] elements)
- {
- int startIndex = int.Parse(elements[2]);
- int endIndex = int.Parse(elements[4]);
- if (startIndex > input.Length || startIndex < 0 || startIndex + endIndex > input.Length||endIndex<0)
- {
- Console.WriteLine("Invalid input parameters.");
- }
- else
- {
- Array.Reverse(input, startIndex, endIndex);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment