Cod sursa(job #360982)
Utilizator | Data | 3 noiembrie 2009 09:49:18 | |
---|---|---|---|
Problema | Floyd-Warshall/Roy-Floyd | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.53 kb |
#include<iostream.h>
int sd,n,sol[100];
void tipar()
{int j,suma;
for(j=1;j<=n;j++)
suma+=sol[j];
if(suma==sd)
for(j=1;j<=n;j++)
cout<<sol[j];
cout<<'\n';
}
int valid(int i,int k)
{int j,suma;
for(j=1;j<=k;j++)
suma+=sol[j];
suma+=i;
if(suma>sd)
return 0;
else
if(k==1&&i==0)
return 0;
return 1;
}
void back(int k)
{int i;
if(k>n)
tipar();
else
for(i=0;i<=9;i++)
if(valid(i,k))
{sol[k]=i;
back(k+1);
}
}
int main()
{cin>>n;
sd=5*n;
back(1);
return 0;
}