AtCoder Beginner Contest 442 C

https://atcoder.jp/contests/abc442/tasks/abc442_c

利害関係で直接つながっている研究者の人数を数えればいいです。頻度を数えるにはtableという関数を使うとよいです。ただ、頻度0は出てこないので、1ずつ加えてからあとで1を引きます。
直接つながっていない研究者の数fは、Nから直接つながっている人数を引いて、さらに自分を除きます。
査読者の組合せはf(f-1)(f-2)/6です。Rは整数は32ビット符号付き整数の範囲を逸脱すると64ビット浮動小数点数になりますが、 f(f-1)(f-2) \lt 8 \times 10^{15}なので、ギリギリ正しく表せる範囲です。
最後に、ふつうに大きな数を出力しようとすると指数表記になってしまいますが、コードのようにすると整数表示になります。

v <- scan("stdin", numeric())
N <- as.integer(v[1])
M <- as.integer(v[2])
AB <- v[3:(M*2+3)]

freq <- as.vector(table(c(AB, 1:N)) - 1)
cases <- (N-freq-1)*(N-freq-2)*(N-freq-3)/6
cat(format(cases, scientific=FALSE), "\n")