Advertisement
Saleh127

Light OJ 1005

Jul 19th, 2021
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.97 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. #define test int tt; cin>>tt; for(int cs=1;cs<=tt;cs++)
  5. ll dp[90][90];
  6.  
  7. ll nCr(ll n,ll r)
  8. {
  9. if(n==r || r==0) return 1;
  10. else if(r==1) return n;
  11. else if(dp[n][r]!=-1) return dp[n][r];
  12.  
  13. dp[n][r]=nCr(n-1,r)+nCr(n-1,r-1);
  14.  
  15. return dp[n][r];
  16. }
  17.  
  18. int main()
  19. {
  20. ios_base::sync_with_stdio(0);
  21. cin.tie(0);
  22. cout.tie(0);
  23.  
  24. ll f[20],i,j,k,l;
  25. f[0]=1;
  26. f[1]=1;
  27. for(i=2; i<=20; i++)
  28. {
  29. f[i]=f[i-1]*i;
  30. }
  31.  
  32. memset(dp,-1,sizeof dp);
  33.  
  34. test
  35. {
  36. ll n,k;
  37.  
  38. cin>>n>>k;
  39.  
  40. cout<<"Case "<<cs<<": ";
  41.  
  42. if(k>n) cout<<0<<endl;
  43. else
  44. {
  45. l=nCr(n,k)*nCr(n,k)*f[k];;
  46.  
  47. /// take k row from n row = nCk
  48. /// take k col from n col = nCk
  49. /// k rook can arrange among themselves in k! ways
  50.  
  51. cout<<l<<endl;
  52. }
  53.  
  54. }
  55.  
  56. return 0;
  57. }
  58.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement