比赛 寒假集训5 评测结果 AAAWWWWWWW
题目名称 на меня 最终得分 30
用户昵称 Ruyi 运行时间 2.872 s
代码语言 C++ 内存使用 8.28 MiB
提交时间 2026-03-01 10:07:36
显示代码纯文本
#include<bits/stdc++.h>
#define ll long long
#define N 200001
#define M 1000001
using namespace std;
ll n,p,a[N],b[N],fac[M],inv[M],ans;
ll qpow(ll xx,ll yy){
    ll res=1;
    while(yy>0){
        if(yy%2==1) res=res*xx%p;
        xx=xx*xx%p;
        yy/=2;
    }
    return res;
}
ll C(ll x,ll y){
    if(x<0||y<0||x>y) return 0;
    return fac[y]*inv[x]%p*inv[y-x]%p;
}
int main(){
    freopen("BBQ.in","r",stdin);
    freopen("BBQ.out","w",stdout);
    cin>>n>>p;
    if(n*n>=1e8){
        cout<<1<<endl;
        return 0;
    }
    for(int i=1;i<=n;i++) cin>>a[i]>>b[i];
    fac[0]=inv[0]=1;
    for(int i=1;i<M;i++){
        fac[i]=fac[i-1]*i%p;
        inv[i]=qpow(fac[i],p-2);
    }
    for(int i=1;i<=n;i++)
    for(int j=i+1;j<=n;j++) ans=(ans+C(a[i]+a[j],a[i]+a[j]+b[i]+b[j]))%p;
    cout<<ans<<endl;
    return 0;
}