Pagini recente » Cod sursa (job #569756) | Cod sursa (job #2883762) | Cod sursa (job #224700) | Cod sursa (job #2502651) | Cod sursa (job #630557)
Cod sursa(job #630557)
#include <cstdio>
#define SMax 100005
using namespace std;
long long N[3], V[3], S[2][2*SMax+2], Sum, SumMin, SumMax;
void Read ()
{
freopen ("plus.in", "r", stdin);
scanf ("%lld", &Sum);
for (int i=0; i<3; ++i)
{
scanf ("%lld %lld", &N[i], &V[i]);
if (V[i]==-1)
{
SumMin-=N[i];
}
if (V[i]==1)
{
SumMax+=N[i];
}
}
}
void Print ()
{
freopen ("plus.out", "w", stdout);
printf ("%lld\n", S[0][Sum+SMax]);
}
void Solve ()
{
S[0][SMax]+=1;
int l=1;
for (int i=0; i<3; ++i, l^=1)
{
for (long long s=SumMin; s<=SumMax; ++s)
{
S[l][s+SMax]=0;
}
for (long long s=SumMin; s<=SumMax; ++s)
{
for (int n=0; n<=N[i]; ++n)
{
S[l][s+SMax]+=S[l^1][s+SMax-V[i]*n];
}
}
}
S[0][Sum+SMax]=S[l^1][Sum+SMax];
}
int main()
{
Read ();
Solve ();
Print ();
return 0;
}