Pagini recente » Cod sursa (job #1304798) | Cod sursa (job #288314) | Rating alexandra (zerobarat) | Istoria paginii runda/statia1a | Cod sursa (job #270488)
Cod sursa(job #270488)
#include <iostream>
using namespace std;
FILE *f = fopen("plus.in", "r"), *g = fopen("plus.out", "w");
long long S, N1, N2, N3, B1, B2, B3, v[3];
long long numar = 0;
long long min(long long a, long long b)
{
if (a < b)
return a;
return b;
}
int main()
{
v[0] = v[1] = v[2] = 0;
fscanf(f, "%lld\n", &S);
fscanf(f, "%lld %lld", &N1, &B1);
fscanf(f, "%lld %lld", &N2, &B2);
fscanf(f, "%lld %lld", &N3, &B3);
fclose(f);
switch (B1) {
case -1 : v[0] += N1; break;
case 0 : v[1] += N1; break;
case 1 : v[2] += N1; break;
};
switch (B2) {
case -1 : v[0] += N2; break;
case 0 : v[1] += N2; break;
case 1 : v[2] += N2; break;
};
switch (B3) {
case -1 : v[0] += N3; break;
case 0 : v[1] += N3; break;
case 1 : v[2] += N3; break;
};
if (S == 0)
{
if (v[0] < v[2])
{
numar = 1 + v[1] + v[0] * (1 + v[1]);
}
else
{
numar = 1 + v[1] + v[2] * (1 + v[1]);
}
fprintf(g, "%lld", numar);
fclose(g);
return 0;
}
if (S > 0)
{
if (S > v[2])
{
fprintf(g, "0");
fclose(g);
return 0;
}
/*
long long x = 0;
while ((v[2] - x >= S) && (x <= v[0]) && (v[2] - x >= 0))
{
numar = numar + (1 + v[1]);
x++;
}
*/
long long i = S, j = 0;
while ((i <= v[2]) && (j <= v[0]))
{
numar = numar + 1 + v[1];
++i;
++j;
}
fprintf(g, "%lld", numar);
fclose(g);
return 0;
}
S = -S;
if (S > v[0])
{
fprintf(g, "0");
fclose(g);
return 0;
}
long long x = 0;
while ((v[0] - x >= S) && (x <= v[2]) && (v[0] - x >= 0))
{
numar = numar + (1 + v[1]);
++x;
}
fprintf(g, "%lld", numar);
fclose(g);
return 0;
}