#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--) { 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; }