```cpp
#include <cstdio>
#include <string>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long ll;
const int N=2e5+2;
namespace math {
inline ll pow(ll x,ll y,const ll p,ll res=1) {
for(;y;y>>=1,x=x*x%p) if(y&1) res=res*x%p;
return res;
}
ll exgcd(const ll a,const ll b,ll&x,ll&y) {
if(!b) {x=1,y=0;return a;}
ll gcd=exgcd(b,a%b,x,y),tmp=x;
x=y,y=tmp-(a/b)*y;return gcd;
}
ll fac(const ll n,const ll p,const ll pk) {
if(!n) return 1;
ll ans=1;
for(int i=1;i<pk;++i) if(i%p) ans=ans*i%pk;
ans=pow(ans,n/pk,pk);
for(int i=1;i<=n%pk;++i) if(i%p) ans=ans*i%pk;
return ans*fac(n/p,p,pk)%pk;
}
inline ll inv(const ll a,const ll p,ll x=0,ll y=0) {
exgcd(a,p,x,y);return (x%p+p)%p;
}
inline ll C(const ll n,const ll m,const ll p,const ll pk) {
if(m>n) return 0;
ll f1=fac(n,p,pk),f2=fac(m,p,pk),f3=fac(n-m,p,pk),cnt=0;
for(ll i=n;i;i/=p) cnt+=i/p;
for(ll i=m;i;i/=p) cnt-=i/p;
for(ll i=n-m;i;i/=p) cnt-=i/p;
return (f1*inv(f2,pk)%pk*inv(f3,pk)%pk*pow(p,cnt,pk)%pk)%pk;
}
inline ll CRT(ll*m,ll*a,int n) {
ll ans=0,lcm=1;
for(int i=1;i<=n;++i) lcm*=m[i];
for(int i=1;i<=n;++i) {
ll num=lcm/m[i];
ans=(ans+a[i]*num%lcm*inv(num,m[i])%lcm)%lcm;
}return ans;
}
}using namespace math;
ll w[20],s[20],n,p,a[N],m[N],v[N],cnt;
int b;
inline void init(ll p) {
for(ll i=2;p>1&&i*i<=p;++i) if(!(p%i)) {
ll num=1;
while(!(p%i)) p/=i,num*=i;
m[++cnt]=num,v[cnt]=i;
}if(p>1) m[++cnt]=v[cnt]=p;
}
inline ll exlucas(ll n,ll b) {
for(int i=1;i<=cnt;++i) a[i]=C(n,b,v[i],m[i]);
return CRT(m,a,cnt);
}
int main() {
scanf("%lld%lld%lld",&p,&n,&b);
init(p),s[0]=0;
for(int i=1;i<=b;++i) scanf("%lld",&w[i]),s[i]=s[i-1]+w[i];
if(s[b]>n) {puts("Impossible");exit(0);}
ll ans=1;
for(int i=1;i<=b;++i)
ans=ans*exlucas(n-s[i-1],w[i])%p;
printf("%lld\n",ans);
return 0;
}
```
by Qiuly @ 2019-06-05 17:45:29
貌似 $\rm{RE}$ 的几个点一直没有变,且和 $loj$ 相同。
![](https://i.loli.net/2019/06/05/5cf78f97e056451183.png)
by Qiuly @ 2019-06-05 17:47:11
loj可以download数据的啊
by CeLaMbDa @ 2019-06-05 17:50:06
@[CeLaMbDa](/space/show?uid=109226) 没错就是这点,数据我都下载了,本地测评完全没问题
顺带一提,$loj$ 报错报的是"段错误"
by Qiuly @ 2019-06-05 17:53:58
@[Qiuly](/space/show?uid=113190) 认为 exLucas 傻逼的神仙!
by Siyuan @ 2019-06-05 17:54:50
@[Qiuly](/space/show?uid=113190) 测试点数据不一样吧
by RE_Ripper @ 2019-06-05 17:55:18
@[g1123931151](/space/show?uid=101860) ?
by Qiuly @ 2019-06-05 17:56:45
@[Siyuan](/space/show?uid=49725) QwQ这题本来就很简单啊QwQ
by Qiuly @ 2019-06-05 17:57:19
@[Qiuly](/space/show?uid=113190) 嘲讽题目$sb$的神仙$orz$
by sanaka87 @ 2019-06-05 18:01:30
orz 您觉得集训队题目是sb题
by NaCly_Fish @ 2019-06-05 18:03:18