Pagini recente » Rezultatele filtrării | Rezultatele filtrării | Cod sursa (job #2900797) | Cod sursa (job #2142616) | Cod sursa (job #517407)
Cod sursa(job #517407)
#include<cstdio>
#define LL long long
LL S,nr[4],v[4],st[4],dr[4];
void read()
{
freopen("plus.in","r",stdin);
freopen("plus.out","w",stdout);
scanf("%lld",&S);
for(int i=1;i<=3;i++)
scanf("%lld%lld",&nr[i],&v[i]);
}
LL min(LL x,LL y)
{
return x<y?x:y;
}
LL max(LL x,LL y)
{
return x>y?x:y;
}
void init()
{
S+=v[1];
for(int i=1;i<=3;i++)
{
st[i]=min(0,nr[i]*v[i]);
dr[i]=max(0,nr[i]*v[i]);
}
}
void solve()
{
LL rez=0;
for(int i=0;i<=nr[1];i++)
{
S-=v[1];
if(!v[2])
{
if(!v[3])
{
if(S==0)
rez+=(nr[2]+1)*(nr[3]+1);
continue;
}
if(S/v[3]<=nr[3] && S/v[3]>=0)
rez+=nr[2]+1;
continue;
}
if(!v[3])
{
if(S/v[2]<=nr[2] && S/v[2]>=0)
rez+=nr[3]+1;
continue;
}
LL x,y;
x=S-dr[2];
y=S-st[2];
if(min(y,dr[3])-max(x,st[3])+1>0)
rez+=min(y,dr[3])-max(x,st[3])+1;
}
printf("%lld",rez);
}
int main()
{
read();
init();
solve();
return 0;
}