RosettaCodeData/Task/Cheryls-birthday/PascalABC.NET/cheryls-birthday.pas
2024-10-16 18:07:41 -07:00

14 lines
702 B
ObjectPascal

##
var dates := HSet(('May', 15), ('May', 16), ('May', 19), ('June', 17),
('June', 18), ('July', 14), ('July', 16), ('August', 14),
('August', 15), ('August', 17));
var uniqueMonths := dates.GroupBy(d -> d[1]).Where(g -> g.count = 1).Select(g -> g.First()[0]).ToHashSet;
dates.RemoveWhere(d -> uniqueMonths.Contains(d[0]));
println('After first Albert''s sentence:', dates);
dates.IntersectWith(dates.GroupBy(d -> d[1]).Where(g -> g.Count() = 1).Select(g -> g.First()));
println('After Bernard''s sentence:', dates);
dates.IntersectWith(dates.GroupBy(d -> d[0]).Where(g -> g.Count() = 1).Select(g -> g.First()));
println('After second Albert''s sentence:', dates);