Advertisement
Guest User

Untitled

a guest
Dec 6th, 2023
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.47 KB | None | 0 0
  1. using System.Text.RegularExpressions;
  2.  
  3. namespace AdventOfCode.Day6;
  4.  
  5. public class Day6Task2 : ITask
  6. {
  7. private class Race
  8. {
  9. public Race(long length, long recordDistance)
  10. {
  11. Length = length;
  12. RecordDistance = recordDistance;
  13. }
  14. public long Length { get; }
  15. public long RecordDistance { get; }
  16. }
  17.  
  18. public void RunTask()
  19. {
  20. long waysToWin = 0;
  21.  
  22. StreamReader sr = new StreamReader("../../../input.txt");
  23. var timeLine = sr.ReadLine();
  24. var distanceLine = sr.ReadLine();
  25.  
  26. var timeNumber = Regex.Replace(timeLine[5..], " ", "");
  27. var distanceNumber = Regex.Replace(distanceLine[10..], " ", "");
  28.  
  29. var race = new Race(Int64.Parse(timeNumber), Int64.Parse(distanceNumber));
  30.  
  31. bool startedWinning = false;
  32.  
  33. long timeHeld = 0;
  34. while (!startedWinning)
  35. {
  36. if (CheckIfWinner(timeHeld, race))
  37. {
  38. startedWinning = true;
  39. }
  40. else
  41. {
  42. timeHeld++;
  43. }
  44. }
  45.  
  46. waysToWin = race.Length - (timeHeld * 2) + 1;
  47.  
  48. Console.WriteLine("Ways to win are : " + waysToWin);
  49. }
  50.  
  51. //holdTime = speed
  52. private bool CheckIfWinner(long holdTime, Race race)
  53. {
  54. long distance = holdTime * (race.Length - holdTime);
  55.  
  56. return distance > race.RecordDistance;
  57. }
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement