比赛 寒假集训5 评测结果 AAATTTTTTT
题目名称 на меня 最终得分 30
用户昵称 rzzakioi 运行时间 8.914 s
代码语言 C++ 内存使用 3.37 MiB
提交时间 2026-03-01 09:29:11
显示代码纯文本
#include<cstdio>
#define int long long
using namespace std;
int n,p,jc[8005],ny[8005],a[200005],b[200005];
int fpow(int x,int y){
    int ans=1;
    while(y){
        if(y&1){
            ans*=x;
            ans%=p;
        }
        x*=x;
        x%=p;
        y>>=1;
    }
    return ans;
}
int C(int x,int y){
    int ans=jc[x];
    ans*=ny[y];
    ans%=p;
    ans*=ny[x-y];
    ans%=p;
    return ans;
}
signed main(){
    freopen("BBQ.in","r",stdin);
    freopen("BBQ.out","w",stdout);
    scanf("%lld%lld",&n,&p);
    jc[0]=1;
    for(int i=1;i<=8000;i++){
        jc[i]=jc[i-1]*i;
        jc[i]%=p;
    }
    for(int i=0;i<=8000;i++){
        ny[i]=fpow(jc[i]%p,p-2);
    }
    for(int i=1;i<=n;i++){
        scanf("%lld%lld",&a[i],&b[i]);
    }
    int ans=0;
    for(int i=1;i<=n;i++){
        for(int j=i+1;j<=n;j++){
            ans+=C(a[i]+a[j]+b[i]+b[j],a[i]+a[j]);
            ans%=p;
        }
    }
    printf("%lld",ans);
    return 0;
}