| 比赛 |
寒假集训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;
}