Pagini recente » Cod sursa (job #1918053) | Cod sursa (job #3176353) | Cod sursa (job #1496244) | Cod sursa (job #2134106) | Cod sursa (job #405653)
Cod sursa(job #405653)
#include<fstream>
using namespace std;
const char iname[]="plus.in";
const char oname[]="plus.out";
typedef long long lint;
ifstream f(iname);
ofstream g(oname);
lint n,s,a[3][4],x,y,i,p,k,v;
lint many(lint x,lint s)
{
if(a[x][0]==0)
return s==0;
if(a[x][0]==1)
return a[x][1]>=s;
if(a[x][0]==2)
if(a[x][1]+a[x][2]<s)
return 0;
else
return min(a[x][1],s)-max(s-a[x][2],(long long)0)+1;
y=a[x][3];
a[x][0]=2;
v=0;
for(lint i=0;i<=y;++i)
v+=many(x,s-i);
return v;
}
int main()
{
f>>s;
for(i=0;i<3;++i)
f>>x>>y,a[++y][++a[y][0]]=x;
for(i=1;i<=a[0][0];++i)
n+=a[0][i];
for(i=1;i<=a[2][0];++i)
p+=a[2][i];
for(i=s;i<=p&&i-s<=n;++i)
k+=many(2,i)*many(0,i-s);
for(i=1;i<=a[1][0];++i)
k*=(a[1][i]+1);
g<<k<<"\n";
f.close();
g.close();
return 0;
}