Submission #19641

#TimeUsernameProblemLanguageResultExecution timeMemory
19641NamnamseoΩ (kriii4_P3)C++14
100 / 100
0 ms1720 KiB
#include <iostream> using namespace std; typedef long long ll; const int M=int(1e9)+7; ll pow(ll a,ll b){ if(b==0) return 1; ll ret=pow(a,b/2); ret=(ret*ret)%M; if(b&1) ret=(ret*a)%M; return ret; } int main() { ll p,q,n,k; cin>>p>>q>>n>>k; if(k==0){ cout<<0; return 0; } if(k==n){ cout<<1; return 0; } if(q==0){ cout<<1; return 0; } else if(p==q){ cout<<0; return 0; } else if(p == 2*q){ cout<<(k*pow(n,M-2))%M; return 0; } int rja=q, rmo=p-q; ll r=rja*pow(rmo,M-2)%M; ll bunja = (M + 1 - pow(r,k))%M; ll bunmo = (M + 1 - pow(r,n))%M; cout<<(bunja*pow(bunmo,M-2)%M); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...