RaceStats.cs 430 B

12345678910111213
  1. namespace Day6;
  2. public record RaceStats(long Duration, long Distance)
  3. {
  4. public long LowerBound()
  5. {
  6. var duration = (double)Duration;
  7. var distance = (double)Distance;
  8. var lowerBound = (-duration + Math.Sqrt(duration * duration - 4 * distance)) / (-2.0);
  9. var nextWhole = (long)Math.Ceiling(lowerBound);
  10. return nextWhole > lowerBound ? nextWhole : nextWhole + 1;
  11. }
  12. }