Pagini recente » Cod sursa (job #1788009) | Cod sursa (job #2870839) | Cod sursa (job #788140) | Cod sursa (job #456800) | Cod sursa (job #2279215)
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
int s[257], N, S, as, ev, k, nr;
void init()
{
s[k]=0;
}
int succesor()
{
if(s[k]<N-1)
{
s[k]++;
return 1;
}
return 0;
}
int valid()
{
if(k>=2)
if(abs(s[k]-s[k-1])!=1)
return 0;
return 1;
}
int solutie()
{
int S2=0;
for(int i=1; i<=k; i++)
S2=S2+s[i];
if(S2==S && k==N)
return 1;
return 0;
}
void tipar()
{
for(int i=1; i<=k; i++)
cout << s[i];
cout << endl;
}
int main()
{
ifstream f("1-sir.in");
ofstream g("1-sir.out");
f >> N >> S;
k=2;
while(k>1)
{
do
{
as = succesor();
if(as)
ev = valid();
} while(!((as && ev) || !(as)));
if(as)
{
if(solutie())
{
nr++;
//tipar();
}
else
{
k++;
init();
}
}
else
k--;
}
g << nr;
g.close();
}