Pagini recente » Cod sursa (job #94806) | Cod sursa (job #1573507) | Cod sursa (job #265637) | Cod sursa (job #2685118) | Cod sursa (job #44183)
Cod sursa(job #44183)
// 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()
{
int 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 );
freopen( "loto.out", "wt", stdout );
int k = 1;
s[0] = 0;
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 )
{
if( N[s[1]]+N[s[2]]+N[s[3]]+N[s[4]]+N[s[5]]+N[s[6]] == suma )
{
printf( "%ld %ld %ld %ld %ld %ld", N[s[1]],N[s[2]],N[s[3]], N[s[4]], N[s[5]], N[s[6]] );
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;
}