Pagini recente » Cod sursa (job #1632912) | Monitorul de evaluare | Cod sursa (job #2646987) | Cod sursa (job #35917) | Cod sursa (job #1486591)
#include <cstdio>
#include <cstring>
#include <algorithm>
#define maxN 100002
#define ct 3
#define ll long long
using namespace std;
int i, j;
ll s, mx, Mx, my, My, sol;
struct b
{
ll n;
ll val;
}v[ct];
void read()
{
freopen("plus.in", "r", stdin);
scanf("%lld", &s);
for (i = 0; i < ct; ++ i)
scanf("%lld %lld", &v[i].n, &v[i].val);
}
void solve()
{
sol = 0;
Mx = max(0LL, v[1].val * v[1].n);
My = max(0LL, v[2].val * v[2].n);
mx = min(0LL, v[1].val * v[1].n);
my = min(0LL, v[2].val * v[2].n);
for (i = 0; i <= v[0].n; ++ i)
{
if (v[1].val == 0)
{
if (!v[2].val)
{
if (s == 0)
sol += (v[1].n + 1) * (v[2].n + 1);
}
else
{
if (s / v[2].val <= v[2].n && s / v[2].val >= 0)
sol += (v[1].n + 1);
}
} else
{
if (!v[2].val)
{
if (s / v[1].val <= v[1].n && s / v[1].val >= 0)
sol += (v[2].n + 1);
} else
{
if (min(s - mx, My) - max(s - Mx, my) + 1 > 0)
sol += min(s - mx, My) - max(s - Mx, my) + 1;
}
}
s -= v[0].val;
}
}
void write()
{
freopen("plus.out", "w", stdout);
printf("%lld", sol);
}
int main()
{
read();
solve();
write();
return 0;
}