Pagini recente » Cod sursa (job #2358450) | Cod sursa (job #2593393) | Cod sursa (job #59861) | Cod sursa (job #204307) | Cod sursa (job #44180)
Cod sursa(job #44180)
// Problema loto
// Backtracking... so help me god!!!
#include <stdio.h>
#define MAX 101
#define SOL 6
long s[SOL+1];
long N[MAX];
long suma;
int main()
{
short n, cd, i;
freopen( "loto.in", "rt", stdin );
scanf( "%d %ld", &n, &suma );
for( i=1; i<=n; i++ ) scanf( "%ld", &N[i] );
fclose( stdin );
long sum;
freopen( "loto.out", "wt", stdout );
short k = 1;
s[k] = 0;
do{
do{
if( s[k] < n ) { s[k]++; cd =1; } else cd = 0;
}while( ( ( !cd ) || ( k > SOL ) ) && ( cd ) );
if( cd )
if( k == SOL )
{
sum = 0;
for( i=1; i<=k; i++ ) sum += N[s[i]];
if( sum == suma )
{
for( i=1; i<=k; i++ )
printf( "%ld ", N[s[i]] );
printf( "\n" );
fclose( stdout );
return 0;
}
}
else
{
k++;
s[k] = s[k-1]-1;
}
else k--;
}while( k > 0 );
printf( "-1\n" );
fclose( stdout );
return 0;
}