Pagini recente » Cod sursa (job #1874427) | Cod sursa (job #2002543) | Cod sursa (job #1921544) | Cod sursa (job #1567160) | Cod sursa (job #2021729)
#include <algorithm>
#include <stdio.h>
#define ll long long
using namespace std;
ll s, nrBile, val, nA, vA, nB, vB, sol;
inline ll formeazaSol(ll sum)
{
if (!vA)
{
if (vB == -1)
if (sum <= 0 && -nB <= sum)
return nA + 1;
if (!vB)
if (!sum)
return (nA + 1) * (nB + 1);
if (vB == 1)
if (sum >= 0 && nB >= sum)
return nA + 1;
}
ll a = vA, b = vB;
if (a == -1)
{
a *= -1;
b *= -1;
sum *= -1;
}
if (a == 1)
{
if (b == -1)
{
if (sum < 0)
return max((ll) 0, min(nA, nB + sum) + 1);
if (sum >= 0)
return max((ll) 0, min(nA - sum, nB) + 1);
}
if (!b)
if (sum >= 0 && nA >= sum)
return nB + 1;
if (b == 1)
if (sum >= 0)
return max((ll) 0, min(sum, nA) + min(sum, nB) - sum + 1);
}
return 0;
}
int main()
{
freopen("plus.in", "r", stdin);
freopen("plus.out", "w", stdout);
scanf("%lld", &s);
scanf("%lld %lld", &nrBile, &val);
scanf("%lld %lld", &nA, &vA);
scanf("%lld %lld", &nB, &vB);
for (ll i = 0; i <= nrBile; i++)
sol += formeazaSol(s - i * val);
printf("%lld", sol);
fclose(stdin);
fclose(stdout);
return 0;
}