제출 #1303661

#제출 시각아이디문제언어결과실행 시간메모리
1303661AksLolCodingAsceticism (JOI18_asceticism)C++17
100 / 100
26 ms1216 KiB
#include <bits/stdc++.h>
using namespace std;
const long long mod=1e9+7;

long long pw(long long x,long long p)
{
    if(p==0)return 1;
    if(p==1)return x;
    long long y=pw(x,p/2);
    y=y*y%mod;
    if(p%2==0)return y;
    return y*x%mod;
}

long long f[200001];

long long comb(long long k,long long n)
{
    long long in=f[n]*pw(f[k]*f[n-k]%mod,mod-2)%mod;
    return in;
}

long long n,k;
void solve()
{
    f[0]=1;
    for(long long i=1;i<=n+1;i++)
        f[i]=f[i-1]*i%mod;

    long long ans=0;
    for(long long i=0;i<k;i+=2)
    {
        ans+=comb(i,n+1)*pw(k-i,n)%mod;
        ans%=mod;
    }

    for(long long i=1;i<k;i+=2)
    {
        ans=(ans-comb(i,n+1)*pw(k-i,n)%mod+mod)%mod;
        ans%=mod;
    }

    cout<<ans<<endl;
}

int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
	cin>>n>>k;
	solve();
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...