Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Numerics;
- using System.Text;
- using System.Threading.Tasks;
- namespace ConsoleApplication1
- {
- class Program
- {
- static void Main(string[] args)
- {
- var values = Console.ReadLine().Split(' ').Select(BigInteger.Parse).ToArray();
- BigInteger currPosition = 0;
- StringBuilder results = new StringBuilder();
- while (true)
- {
- string[] command = Console.ReadLine().Split(' ').ToArray();
- if (command[0] == "stop")
- {
- break;
- }
- int times = int.Parse(command[0]);
- string direction = command[1];
- int step = int.Parse(command[2]);
- BigInteger sum = 0;
- if (direction == "right")
- {
- currPosition += step;
- for (uint i = 0; i < times; i++)
- {
- if (currPosition > values.Length - 1)
- {
- sum += values[(uint)(currPosition - values.Length)];
- currPosition = currPosition + step - values.Length;
- }
- else
- {
- sum += values[(uint)(currPosition)];
- currPosition += step;
- }
- }
- currPosition -= step;
- }
- else if (direction == "left")
- {
- currPosition -= step;
- for (int i = times; i > 0; i--)
- {
- if (currPosition < 0)
- {
- currPosition = (values.Length + currPosition);
- }
- sum += values[(uint)currPosition];
- currPosition -= step;
- }
- currPosition += step;
- }
- results.Append(sum);
- results.Append(" ");
- }
- string[] strResults = results.ToString().Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
- decimal sumResults = 0;
- decimal strLength = strResults.Length;
- for (uint i = 0; i < strLength; i++)
- {
- decimal currNum = 0;
- decimal.TryParse(strResults[i], out currNum);
- sumResults += currNum;
- }
- decimal average = Math.Round((decimal)(sumResults / strResults.Length), 1);
- Console.WriteLine(average);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement