Advertisement
Guest User

suicide2

a guest
May 31st, 2016
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.78 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Numerics;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7.  
  8. namespace ConsoleApplication1
  9. {
  10. class Program
  11. {
  12. static void Main(string[] args)
  13. {
  14. var values = Console.ReadLine().Split(' ').Select(BigInteger.Parse).ToArray();
  15.  
  16. BigInteger currPosition = 0;
  17. StringBuilder results = new StringBuilder();
  18. while (true)
  19. {
  20. string[] command = Console.ReadLine().Split(' ').ToArray();
  21. if (command[0] == "stop")
  22. {
  23. break;
  24. }
  25.  
  26. int times = int.Parse(command[0]);
  27. string direction = command[1];
  28. int step = int.Parse(command[2]);
  29.  
  30. BigInteger sum = 0;
  31.  
  32. if (direction == "right")
  33. {
  34. currPosition += step;
  35. for (uint i = 0; i < times; i++)
  36. {
  37. if (currPosition > values.Length - 1)
  38. {
  39. sum += values[(uint)(currPosition - values.Length)];
  40. currPosition = currPosition + step - values.Length;
  41. }
  42. else
  43. {
  44. sum += values[(uint)(currPosition)];
  45. currPosition += step;
  46. }
  47. }
  48. currPosition -= step;
  49. }
  50. else if (direction == "left")
  51. {
  52. currPosition -= step;
  53. for (int i = times; i > 0; i--)
  54. {
  55. if (currPosition < 0)
  56. {
  57. currPosition = (values.Length + currPosition);
  58. }
  59. sum += values[(uint)currPosition];
  60. currPosition -= step;
  61. }
  62. currPosition += step;
  63. }
  64. results.Append(sum);
  65. results.Append(" ");
  66. }
  67.  
  68. string[] strResults = results.ToString().Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
  69. decimal sumResults = 0;
  70. decimal strLength = strResults.Length;
  71. for (uint i = 0; i < strLength; i++)
  72. {
  73. decimal currNum = 0;
  74. decimal.TryParse(strResults[i], out currNum);
  75. sumResults += currNum;
  76. }
  77. decimal average = Math.Round((decimal)(sumResults / strResults.Length), 1);
  78. Console.WriteLine(average);
  79. }
  80. }
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement