codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#include<bits/stdc++.h> using namespace std; long long mod = 1000000007; #define ll long long long long dp[100002][70]; long long nCr(int n,int r) { if(r==1) return n; if(n==r) return 1; if(dp[n][r]!=-1) return dp[n][r]; else { dp[n][r]=(nCr(n-1,r)+nCr(n-1,r-1))%mod; return (dp[n][r])%mod; } } int main() { //init dp table with -1 for(int i=0; i< 100002; i++) for(int j=0; j < 70; j++) dp[i][j]=-1; int n, r,k,x; int t,cs=1; // ll ans; ll ans; scanf("%d",&t); while(t--) { ans=1; int cnt=0; scanf("%d%d%d",&n,&k,&x); int d = x; while(n>=d) { ll a = nCr(n,d); cout<<n<<" "<<d<<" "<<a<<" "; ans*=a; n-=d; if(ans>=mod)ans%=mod; cout<<ans<<endl; // x-=d; cnt++; if(cnt>=k)break; } if(cnt<k)ans=0; printf("Case %d: %lld\n",cs++,ans); } return 0; }
Private
[
?
]
Run code
Submit