let isCollision (abt1, abt2) = let (_, b1, t1) = abt1 let (_, b2, t2) = abt2 let g1 = t1 + b2 let g2 = t2 + b1 g1 = g2 let solve n (abtArr: (int * int * int) array) = let (abtArr1, abtArr2) = Array.partition (fun (a1, _, _) -> a1 = 0) abtArr seq { for i in 1 .. (Array.length abtArr1) do for j in 1 .. (Array.length abtArr2) -> (abtArr1.[i - 1], abtArr2.[j - 1]) } |> Seq.filter isCollision |> Seq.length let () = let n = stdin.ReadLine() |> int let abtArr = seq { for i in 1 .. n -> stdin.ReadLine().Split() |> Array.map int |> fun arr -> (arr.[0], arr.[1], arr.[2]) } |> Seq.toArray solve n abtArr |> printfn "%d"