TopCoder SRM619: GoodCompanyDivTwo
各 department について、重複 した work type がないかどうかを判定すればよい。
Div2 Easy にしては やや複雑な問題。
public class GoodCompanyDivTwo { public int countGood(int[] superior, int[] workType) { int n = superior.Length; int ans = 0; for (int i = 0; i < n; i++) { var department = E.Range(0, n).Where(index => superior[index] == i).ToList(); department.Add(i); if (department.Select(d => workType[d]).Distinct().Count() == department.Count()) ans++; } return ans; } }