--sas

decomposition

Apr 23rd, 2020
381
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.65 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. int f (int M, int N, int k, int m, int n) {
  4.  
  5.     if (k == 1)
  6.         return (M < m || (M == m && N <= n)) ? 1 : 0;
  7.  
  8.     int count = 0, new_m = 0, new_n = 0;
  9.     while ((new_m < m || (new_m == m && new_n <= n)) && new_m <= M) {
  10.         count += f(M - new_m, N - new_n, k - 1, new_m, new_n);
  11.  
  12.         if (new_n == N) {
  13.             new_n = 0;
  14.             ++new_m;
  15.         }
  16.         else {
  17.             ++new_n;
  18.         }
  19.     }
  20.  
  21.     return count;
  22. }
  23.  
  24. int res (int M, int N, int k) {
  25.     return f(M, N, k, M, N);
  26. }
  27.  
  28. int main() {
  29.     int M, N, k;
  30.     std::cin >> M >> N >> k;
  31.     std::cout << res(M, N, k);
  32.     return 0;
  33. }
Advertisement
Add Comment
Please, Sign In to add comment