public string SolveSecondPart() { var claims = dataProvider.GetData().ToList(); var canvas = new Canvas(claims.Max(c => c.Right), claims.Max(c => c.Bottom)); foreach (var claim in claims) { canvas.AddClaim(claim); } return(claims.Single(claim => claim.HasNoConflicts()).Id.ToString()); }
public string SolveFirstPart() { var claims = dataProvider.GetData().ToList(); var canvas = new Canvas(claims.Max(c => c.Right), claims.Max(c => c.Bottom)); foreach (var claim in claims) { canvas.AddClaim(claim); } return(canvas.NumberOfSquaresWithOverlap().ToString()); }