#include 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--) { f[max(i - a, 0)] = (f[max(i - a, 0)] + f[i]) % MOD; f[max(i - b, 0)] = (f[max(i - b, 0)] + f[i]) % MOD; } for (int i = 0; i <= c; i++) ans = (ans + f[i]) % MOD; printf("%d\n", ans); return 0; }