Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- int f (int M, int N, int k, int m, int n) {
- if (k == 1)
- return (M < m || (M == m && N <= n)) ? 1 : 0;
- int count = 0, new_m = 0, new_n = 0;
- while ((new_m < m || (new_m == m && new_n <= n)) && new_m <= M) {
- count += f(M - new_m, N - new_n, k - 1, new_m, new_n);
- if (new_n == N) {
- new_n = 0;
- ++new_m;
- }
- else {
- ++new_n;
- }
- }
- return count;
- }
- int res (int M, int N, int k) {
- return f(M, N, k, M, N);
- }
- int main() {
- int M, N, k;
- std::cin >> M >> N >> k;
- std::cout << res(M, N, k);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment