#include <bits/stdc++.h> using namespace std; int n,m; long long M; long long calc(int n, int p=0, int q=m-1) { if (n==0) return 1; long long w=0; for (int i=0; i<=q; i++) { for (int j=max(p,i); j<m; j++) { w+=calc(n-1,i,j); w%=M; } } return w; } int main() { scanf("%d %d %lld",&n,&m,&M); printf("%lld\n",calc(n)); return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #include <bits/stdc++.h> using namespace std; int n,m; long long M; long long calc(int n, int p=0, int q=m-1) { if (n==0) return 1; long long w=0; for (int i=0; i<=q; i++) { for (int j=max(p,i); j<m; j++) { w+=calc(n-1,i,j); w%=M; } } return w; } int main() { scanf("%d %d %lld",&n,&m,&M); printf("%lld\n",calc(n)); return 0; } |