Cod sursa(job #51837)

Utilizator Bluedrop_demonPandia Gheorghe Bluedrop_demon Data 16 aprilie 2007 22:23:00
Problema Loto Scor 35
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.44 kb
// 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;
    long max = 0;
    
    freopen( "loto.in", "rt", stdin );
             scanf( "%d %ld", &n, &suma );
             for( i=1; i<=n; i++ ) { scanf( "%ld", &N[i] ); if( N[i] > max ) max = N[i]; }
    fclose( stdin );
    
    freopen( "loto.out", "wt", stdout );
    if( max*6 < suma ) 
        {
              printf( "-1\n" );
              fclose( stdout );
              return 0;
        }
    else
    {
    int s1, s2, s3, s4, s5, s6;
    
    for( s1=1; s1<=n-5; s1++ )
         for( s2=s1; s2<=n-4; s2++ )
              for( s3=s2; s3 <=n-3; s3++ )
                   for( s4=s3; s4<=n-2; s4++ )
                        for( s5=s4; s5<=n-1; s5++ )
                             for( s6=s5; s6<=n; s6++ )
                                  if( N[s1]+N[s2]+N[s3]+N[s4]+N[s5]+N[s6] == suma ) 
                                      {
                                         printf( "%ld %ld %ld %ld %ld %ld\n",
                                                 N[s1], N[s2], N[s3], N[s4], N[s5], N[s6] );
                                         fclose( stdout );
                                         return 0; 
                                      }
    }

    printf( "-1\n" );    
    fclose( stdout );
    return 0;
}