比赛 寒假集训5 评测结果 TTTTTTTTTT
题目名称 на меня 最终得分 0
用户昵称 对立猫猫对立 运行时间 11.003 s
代码语言 C++ 内存使用 3.46 MiB
提交时间 2026-03-01 09:10:51
显示代码纯文本
#include <bits/stdc++.h>
#define int long long
using namespace std;
int n, p, ans;
int a[200005], b[200005];
int jc[10005];
int kasumi(int a, int b, int p) {
    int ans = 1;
    while(b) {
        if(b & 1) ans *= a, ans %= p;
        a *= a;
        a %= p;
        b >>= 1;
    }
    return ans;
}
int C(int n, int k, int p) {
    if(n < k) return 0;
    return jc[n] * kasumi(jc[k] * jc[n - k] % p, p - 2, p) % p;
}
signed main() {
    freopen("BBQ.in", "r", stdin);
    freopen("BBQ.out", "w", stdout);
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin >> n >> p;
    jc[1] = jc[0] = 1;
    for(int i = 2; i <= 8005; i++) {
        jc[i] = jc[i - 1] * i % p;
    }
    for(int i = 1; i <= n; i++) {
        cin >> a[i] >> b[i];
        for(int j = i - 1; j >= 1; j--) {
            ans += C(a[i] + a[j] + b[i] + b[j], a[i] + a[j], p) % p;
            ans %= p;
        }
    }
    cout << ans << endl;
    return 0;
}