HailStorm.cs 855 B

123456789101112131415161718192021222324252627282930
  1. namespace Day24;
  2. public class HailStorm
  3. {
  4. private readonly IList<Line> _hail;
  5. public HailStorm(IList<Line> hail)
  6. {
  7. _hail = hail;
  8. }
  9. public long Count(double min, double max)
  10. {
  11. var count = 0L;
  12. for (var i = 0; i < _hail.Count - 1; i++)
  13. {
  14. for (var j = i + 1; j < _hail.Count; j++)
  15. {
  16. var intersection = _hail[i].IntersectionWith(_hail[j]);
  17. //Console.WriteLine($"{i} v {j} => {intersection.X} / {intersection.Y} @ {intersection.T1} & {intersection.T2}");
  18. //Console.WriteLine($"Within Limits: {intersection.IsValid(min, max)}");
  19. if (intersection.IsValid(min, max))
  20. {
  21. count++;
  22. }
  23. }
  24. }
  25. return count;
  26. }
  27. }