| 比赛 |
寒假集训5 |
评测结果 |
AAAWWAWWWW |
| 题目名称 |
на меня |
最终得分 |
40 |
| 用户昵称 |
梦那边的追忆SB |
运行时间 |
1.600 s |
| 代码语言 |
C++ |
内存使用 |
3.91 MiB |
| 提交时间 |
2026-03-01 11:24:21 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define foru(a,b,c) for(ll a=b;a<=c;a++)
#define endl '\n'
ll n,p,a[5005],b[5005],f[10005],inv[10005];
ll pw(ll x,ll y){
ll res=1;
x%=p;
while(y){
if(y&1)res=res*x%p;
x=x*x%p;
y>>=1;
}
return res;
}
ll c(ll x,ll y){
if(y<0||y>x)return 0;
return f[x]*inv[y]%p*inv[x-y]%p;
}
int main() {
freopen("BBQ.in","r",stdin);
freopen("BBQ.out","w",stdout);
ios::sync_with_stdio(0);
cin.tie(0);
cin>>n>>p;
f[0]=1;
foru(i,1,1e4){
f[i]=f[i-1]*i%p;
}
inv[10000]=pw(f[10000],p-2);
for(ll i=1e4-1;i>=0;i--)inv[i]=inv[i+1]*(i+1)%p;
foru(i,1,n)cin>>a[i]>>b[i];
ll ans=0;
foru(i,1,n){
foru(j,i+1,n){
ans=(ans+c(a[i]+a[j]+b[i]+b[j],a[i]+a[j]))%p;
}
}
cout<<ans;
return 0;
}