#include<iostream>#define int long longusingnamespacestd;constintN=50;intn,ans;inta[N];intc(inta,intb){intres=1;for(inti=a;i>=a-b+1;i--)res*=i;for(inti=b;i>=1;i--)res/=i;returnres;}intfact(intx){intres=1;for(inti=1;i<=x;i++)res=res*i;returnres;}signedmain(){cin>>n;for(inti=0;i<=n;i++)a[i]=c(n,i)*fact(n-i);for(inti=0;i<=n;i+=2)ans+=a[i];for(inti=1;i<=n;i+=2)ans-=a[i];cout<<ans<<'\n';return0;}
#include<iostream>#define int long longusingnamespacestd;constintN=1e6+10;constintMOD=1e9+7;intn,k,ans;intinv[N],fact[N],ifact[N];intpw2[N];#define add(a, b) a = (a + b) % MOD;#define sub(a, b) a = (a + MOD - b) % MOD;inlineintc(inta,intb){returnfact[a]*ifact[a-b]%MOD*ifact[b]%MOD;}inlineintqpow(inta,intb){intres=1;while(b){if(b&1)res=res*a%MOD;a=a*a%MOD;b>>=1;}returnres;}inta[N];signedmain(){cin>>n>>k;inv[1]=1;fact[0]=ifact[0]=1;pw2[0]=1;for(inti=2;i<=n;i++)inv[i]=MOD-inv[MOD%i]*(MOD/i)%MOD;for(inti=1;i<=n;i++)fact[i]=fact[i-1]*i%MOD;for(inti=1;i<=n;i++)ifact[i]=ifact[i-1]*inv[i]%MOD;for(inti=1;i<=n;i++)pw2[i]=pw2[i-1]*2%(MOD-1);for(inti=k;i<=n;i++)a[i]=c(n,i)*(qpow(2,pw2[n-i])+MOD-1)%MOD;for(inti=k;i<=n;i+=2)add(ans,c(i,k)*a[i]%MOD);for(inti=k+1;i<=n;i+=2)sub(ans,c(i,k)*a[i]%MOD);cout<<ans<<'\n';return0;}
#include<iostream>#define int long longusingnamespacestd;constintN=2010;constintMOD=1e9+7;intn,m,ans;inta[N];intinv[N],fact[N],ifact[N];ints[N];intc(intx,inty){returnfact[x]*ifact[x-y]%MOD*ifact[y]%MOD;}signedmain(){inv[1]=fact[0]=ifact[0]=1;for(inti=2;i<N;i++)inv[i]=MOD-inv[MOD%i]*(MOD/i)%MOD;for(inti=1;i<N;i++)fact[i]=fact[i-1]*i%MOD;for(inti=1;i<N;i++)ifact[i]=ifact[i-1]*inv[i]%MOD;cin>>n>>m;for(inti=1;i<=m;i++)cin>>a[i];for(intk=0;k<n;k++){s[k]=c(n,k);for(inti=1;i<=m;i++)s[k]=s[k]*c(a[i]+n-k-1,n-k-1)%MOD;}for(inti=0;i<=n;i+=2)ans=(ans+s[i])%MOD;for(inti=1;i<=n;i+=2)ans=(ans+MOD-s[i])%MOD;cout<<ans<<'\n';return0;}
#include<iostream>#include<algorithm>#define int long longusingnamespacestd;constintN=2010;constintMOD=1e9+9;#define add(a, b) a = (a + b) % MODintfact[N],ifact[N],inv[N];intc(inta,intb){returnfact[a]*ifact[a-b]%MOD*ifact[b]%MOD;}intn,k,ans;inta[N],b[N];intf[N];signedmain(){inv[1]=fact[0]=ifact[0]=1;for(inti=2;i<N;i++)inv[i]=MOD-inv[MOD%i]*(MOD/i)%MOD;for(inti=1;i<N;i++)fact[i]=fact[i-1]*i%MOD;for(inti=1;i<N;i++)ifact[i]=ifact[i-1]*inv[i]%MOD;cin>>n>>k;for(inti=1;i<=n;i++)cin>>a[i];for(inti=1;i<=n;i++)cin>>b[i];if((n&1)!=(k&1)){cout<<"0\n";return0;}k=(n+k)>>1;sort(a+1,a+1+n);sort(b+1,b+1+n);for(inti=1;i<=n;i++){intp=lower_bound(b+1,b+1+n,a[i])-b-1;f[0]=1;for(intj=min(i,p);j>=1;j--){add(f[j],f[j-1]*(p-j+1)%MOD);}}for(inti=0;i<=n;i++)f[i]=f[i]*fact[n-i]%MOD;for(inti=k;i<=n;i+=2)add(ans,c(i,k)*f[i]%MOD);for(inti=k+1;i<=n;i+=2)add(ans,MOD-c(i,k)*f[i]%MOD);cout<<ans<<'\n';return0;}