Cod sursa(job #360982)

Utilizator APOCALYPTODragos APOCALYPTO 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;
}