Advertisement
Guest User

Untitled

a guest
Jun 28th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.18 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Text.RegularExpressions;
  7.  
  8. namespace ConsoleApplication85
  9. {
  10. class Program
  11. {
  12. static void Main(string[] args)
  13. {
  14. var tickets = Console.ReadLine()
  15. .Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)
  16. .Select(t => t.Trim())
  17. .ToArray();
  18.  
  19. foreach (var ticket in tickets)
  20. {
  21. if (ticket.Length != 20)
  22. {
  23. Console.WriteLine("invalid ticket");
  24. continue;
  25. }
  26.  
  27. var left = ticket.Take(10).ToArray();
  28. var right = ticket.Skip(10).ToArray();
  29.  
  30. var winningTicket = false;
  31.  
  32. var leftResult = Repeating(left);
  33. if (leftResult.Symbol == '@'
  34. || leftResult.Symbol == '#'
  35. || leftResult.Symbol == '$'
  36. || leftResult.Symbol == '^'
  37. && leftResult.Count >= 6)
  38. {
  39. var rightResult = Repeating(right);
  40. if (leftResult.Symbol == rightResult.Symbol
  41. && rightResult.Count >= 6)
  42. {
  43. var jackpot = leftResult.Count == 10 && rightResult.Count == 10
  44. ? " Jackpot!"
  45. : string.Empty;
  46.  
  47. Console.WriteLine($"ticket \"{ticket}\" - {Math.Min(leftResult.Count, rightResult.Count)}{leftResult.Symbol}{jackpot}");
  48. winningTicket = true;
  49. }
  50. }
  51. if(!winningTicket)
  52. {
  53. Console.WriteLine($"ticket \"{ticket}\" - no match");
  54. }
  55.  
  56. Repeating(left);
  57.  
  58. }
  59.  
  60. }
  61. public class Result
  62. {
  63. public int Count { get; set; }
  64.  
  65. public char Symbol { get; set; }
  66. }
  67. public static Result Repeating(char[] symbols)
  68. {
  69. var prevSymbol = symbols.First();
  70. int count = 1;
  71. int maxCount = 0;
  72. var maxSymbol = default(char);
  73.  
  74. for (int i = 0; i < symbols.Length; i++)
  75. {
  76. var currentSymbol = symbols[i];
  77. if (prevSymbol == currentSymbol)
  78. {
  79. count++;
  80. }
  81. else
  82. {
  83. if (count > maxCount)
  84. {
  85. maxCount = count;
  86. maxSymbol = prevSymbol;
  87. }
  88.  
  89. count = 1;
  90. }
  91.  
  92. if (count > maxCount)
  93. {
  94. maxCount = count;
  95. maxSymbol = prevSymbol;
  96. }
  97.  
  98. prevSymbol = currentSymbol;
  99. }
  100.  
  101. return new Result
  102. {
  103. Count = maxCount,
  104. Symbol = maxSymbol
  105.  
  106. };
  107. }
  108. }
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement