Codeforces 1305 C. Kuroni and Impossible Calculation(同余?鸽巢?)

Codeforces 1305 C. Kuroni and Impossible Calculation(同余?鸽巢?)_第1张图片

题意:

题意很简单,就是求那个累积的值,昨晚卷积了半天发现 m m m 只有 1000 1000 1000,就可以知道只要 n > 1000 n>1000 n>1000 必定输出 0 0 0 或者 n > m n>m n>m 也会输出 0 0 0.
a % m = = b % m a\%m==b\%m a%m==b%m 那么有 ∣ a − b ∣ % m = = 0 |a-b|\%m==0 ab%m==0,所以当 n > m n>m n>m会有两种情况:

  1. n n n 个数都不相同,那么肯定会出现 a % m = = b % m a\%m==b\%m a%m==b%m 这样的两个数,所以答案就是 0 0 0.
  2. n n n 个数有相同的,那 ∣ a − b ∣ |a-b| ab存在为 0 0 0 的,答案就是 0 0 0

AC代码:

const int N = 2e5 + 10;
int n, m;
int res, tmp, cnt;
int a[N];

int main()
{
    sdd(n, m);
    rep(i, 1, n)
        sd(a[i]);
    if (n >= 2000)
        puts("0");
    else
    {
        ll ans = 1;
        rep(i, 1, n)
        {
            rep(j, i + 1, n)
            {
                ans = abs(a[i] - a[j]) % m * ans % m;
                ans = ans % m;
            }
        }
        pld(ans);
    }
    return 0;
}

你可能感兴趣的:(CodeForces)