func main() var n: int :: cui@inputInt() var m: int :: cui@inputInt() var data: [][]bool :: #[n, n]bool var dic: dict :: #dict for(1, m) var a: int :: cui@inputInt() var b: int :: cui@inputInt() do a :- 1 do b :- 1 do data[a][b] :: true do data[b][a] :: true end for for i(0, n - 1) for j(0, n - 1) if(!data[i][j]) skip j end if ; iとjは友達。 for k(0, n - 1) if(!data[j][k]) skip k end if ; jとkは友達。 if(data[i][k]) skip k end if ; iとkは「友達」ではない。 ; iとkは「友達の友達」。 ; ※「友達の友達」であるためには、「友達」ではないことが必要 do dic.add(i * n + k, true) do dic.add(k * n + i, true) end for end for end for var ans: int :: 0 for i(0, n - 1) for j(i + 1, n - 1) if(dic.get(i * n + j, &)) skip j end if for k(j + 1, n - 1) if(dic.get(i * n + k, &)) skip k end if if(dic.get(j * n + k, &)) skip k end if do ans :+ 1 end for end for end for do cui@print("\{ans}\n") end func