47 lines
798 B
C++
47 lines
798 B
C++
#include <bits/stdc++.h>
|
||
using namespace std;
|
||
const int N = 2e5 + 10;
|
||
const int MOD = 1e9 + 7;
|
||
int n, a, b, c;
|
||
int f[N];
|
||
int ans;
|
||
int main() {
|
||
#ifndef ONLINE_JUDGE
|
||
freopen("20240301.in", "r", stdin);
|
||
#endif
|
||
/**
|
||
例1:
|
||
1 1 1 1
|
||
答案:1
|
||
|
||
例2:
|
||
114 51 4 1
|
||
答案:176
|
||
|
||
例3:
|
||
114514 191 9 810
|
||
答案:384178446
|
||
*/
|
||
// 从大向小推
|
||
cin >> n >> a >> b >> c;
|
||
|
||
f[n] = 1;
|
||
|
||
for (int i = n; i > c; i--) {
|
||
if (i - a >= 0)
|
||
f[i - a] = (f[i - a] + f[i]) % MOD;
|
||
else
|
||
f[0] = (f[i] + f[0]) % MOD;
|
||
|
||
if (i - b >= 0)
|
||
f[i - b] = (f[i - b] + f[i]) % MOD;
|
||
else
|
||
f[0] = (f[0] + f[i]) % MOD;
|
||
}
|
||
for (int i = 0; i <= c; i++)
|
||
ans = (ans + f[i]) % MOD;
|
||
|
||
printf("%d\n", ans);
|
||
|
||
return 0;
|
||
} |