Pagini recente » Istoria paginii utilizator/andreiboto | Holiday | Cod sursa (job #1710414) | Cod sursa (job #989844) | Cod sursa (job #1771666)
#include <iostream>
#include <algorithm>
#define lint long long int
using namespace std;
lint solve(int S, int valA, int A, int valB, int B) {
if (valB < valA) {
swap(valA, valB);
swap(A, B);
}
if (valA == 0 && valB == 0) {
if (S == 0)
return 1LL * (A + 1) * (B + 1);
else
return 0;
}
else if (valA == 0 && valB == 1) {
if (0 <= S && S <= B)
return (A + 1);
else
return 0;
}
else if (valA == -1 && valB == -1)
return max(0, min(B, -S) - max(0, -A - S) + 1);
else if (valA == -1 && valB == 0) {
if (-A <= S && S <= 0)
return (B + 1);
else
return 0;
}
else if (valA == -1 && valB == 1)
return max(0, min(A, B - S) - max(0, -S) + 1);
else if (valA == 1 && valB == 1)
return max(0, min(B, S) - max(0, S - A) + 1);
}
int main()
{
freopen("plus.in", "r", stdin);
freopen("plus.out", "w", stdout);
int S;
int A, valA;
int B, valB;
int C, valC;
cin >> S;
cin >> A >> valA;
cin >> B >> valB;
cin >> C >> valC;
lint ans = 0;
for (int i = 0; i <= C; ++ i)
ans += solve(S - i * valC, valA, A, valB, B);
cout << ans << '\n';
return 0;
}