比赛 寒假集训5 评测结果 AAATTTTTTT
题目名称 на меня 最终得分 30
用户昵称 杨蕙宇 运行时间 8.577 s
代码语言 C++ 内存使用 5.38 MiB
提交时间 2026-03-01 10:25:33
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
typedef unsigned long long ull;
const int N=2e5+10;
ull n,p,a[N],b[N],ans,a1[8005],a2[8005],c[8005];
void geta1(){
    a1[0]=1ull;
    for(int i=1;i<=8000;i++){
        a1[i]=a1[i-1]*i%p;
    }
}
void geta2(){
  c[1]=1ull;
  for(int i=2;i<=8000;i++){
      c[i]=(ull)(p-p/i)*c[p%i]%p;
  }
  a2[0]=1ull;
  for(int i=1;i<=8000;i++){
      a2[i]=a2[i-1]*c[i]%p;
  }
}
ull getc(ull x,ull y){
    return a1[x]*a2[y]%p*a2[x-y]%p;
}
int main(){
    freopen("BBQ.in","r",stdin);
    freopen("BBQ.out","w",stdout);
    cin>>n>>p;
    geta1();
    geta2();
    for(int i=1;i<=n;i++){
        cin>>a[i]>>b[i];
    }
    for(int i=1;i<=n;i++){
        for(int j=i+1;j<=n;j++){
            ans=(ans+getc(a[i]+a[j]+b[i]+b[j],a[i]+a[j]))%p;
        }
    }
    cout<<ans;
    return 0;
}