fork download
  1. #include <bits/stdc++.h>
  2. #define endl '\n'
  3. #define modulo 10000007
  4. #define int long long
  5. using namespace std;
  6. ///Solution created by:Ahmadsm2005
  7. int maxer;
  8. int DP[101][101];
  9. int Recursion(int n,int m){
  10. if(m<0){
  11. return 0;
  12. }
  13. if(n==maxer&&!m)
  14. return 1;
  15. else if(n==maxer){
  16. return 0;
  17. }
  18. if(DP[n][m]+1)
  19. return DP[n][m]%modulo;
  20. DP[n][m]=0;
  21. for(int i=1;i<=m;i++){
  22. DP[n][m]+=(Recursion(n+1,m-i))%modulo;
  23. }
  24. return DP[n][m];
  25. }
  26. int32_t main()
  27. {
  28. iostream::sync_with_stdio(0);
  29. cin.tie(0);
  30. cout.tie(0);
  31. int m;
  32. for(int i=0;i<101;i++)
  33. for(int l=0;l<101;l++)
  34. DP[i][l]=-1;
  35. cin>>m>>maxer;
  36. cout<<(Recursion(0,m)?Recursion(0,m):-1);
  37. return 0;
  38. }
  39.  
Success #stdin #stdout 0s 4288KB
stdin
Standard input is empty
stdout
-1