Pagini recente » Cod sursa (job #712818) | Cod sursa (job #3208498) | Cod sursa (job #2126064) | Cod sursa (job #1073114) | Cod sursa (job #637546)
Cod sursa(job #637546)
#include <iostream>
#include <stdio.h>
FILE *f,*g;
f=fopen("dirichlet.in","r");
g=fopen("dirichlet.out","w");
int n,stiva[20],count=0;
void ini_date()
{
int i;
fscanf(f,"%d", &n);
for(i=0; i<=n ;i++)
{
stiva[i]=0;
}
}
int valid_1(int p)
{
int i,s=0;
for(i=1; i<=p ;i++)
{
s+=stiva[i];
}
if(s==p)
{
return 2;
}
else
{
if(s<p)
{
return 1;
}
else
{
return 0;
}
}
}
int valid_2(int p)
{
int i,s=0;
for(i=1; i<=p ;i++)
{
s+=stiva[i];
}
if(s==n)
{
return 1;
}
else
{
return 0;
}
}
void BKT(int p)
{
int pval;
if(p==n+1)
{
if(valid_2(p-1))
{
count++;
}
}
else
{
for(pval=0; pval<=p ;pval++)
{
stiva[p]=pval;
if(valid_1(p))
{
BKT(p+1);
}
}
}
}
int main()
{
ini_date();
BKT(1);
fprintf(g,"%d",count);
g.close();
f.close();
return 0;
}