#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; } |
English