题解 CF1305C 【Kuroni and Impossible Calculation】

· · 题解

发现直接做不容易并且 m 很小,于是选择观察性质。考虑鸽笼原理,当 n>m 时,必有两项 a_i,a_jm 同余。所以如果 n>m 答案就是 0,否则暴力即可。

int main(){
    cin >> n >> m ;
    for (int i = 1 ; i <= n ; ++ i)
        scanf("%lld", &base[i]) ;
    if (n > m) return puts("0"), 0 ;
    for (int i = 1 ; i <= n ; ++ i)
        for (int j = i + 1 ; j <= n ; ++ j)
            (ans *= (LL)abs(base[i] - base[j])) %= m ;
    cout << ans << endl ;
}