fork(1) download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. typedef long long int ll;
  4. ll help(vector<vector<ll> >& A,ll k,ll n,int last){
  5. if(k<0){
  6. return 0;
  7. }
  8. if(n==0){
  9. if(k==0){
  10. return 1;
  11. }
  12. return 0;
  13. }
  14. if(A[n][k]!=-1){
  15. return A[n][k];
  16. }
  17. if(last==0){
  18. return A[n][k]=help(A,k,n-1,1) + help(A,k,n-1,0);
  19. }
  20. return A[n][k]= help(A,k-1,n-1,1) + help(A,k,n-1,0);
  21. }
  22. int main(void){
  23. int t;
  24. cin >> t;
  25. while(t--){
  26. ll n_dataset,n,k;
  27. cin >> n_dataset >> n >> k;
  28. vector<vector<ll> > A(n+1,vector<ll>(k+1,-1));
  29. cout << n_dataset << " " << help(A,k,n,0) << endl;
  30. }
  31. return 0;
  32. }
Success #stdin #stdout 0s 15240KB
stdin
10
1 5 2
2 20 8
3 30 17
4 40 24
5 50 37
6 60 52
7 70 59
8 80 73
9 90 84
10 100 90
stdout
1 12
2 82368
3 12921216
4 673171200
5 780346112
6 419760
7 487968768
8 1124800
9 29240
10 97584032