Pagini recente » Cod sursa (job #2005479) | Cod sursa (job #215767) | Cod sursa (job #2385080) | Cod sursa (job #1665671) | Cod sursa (job #1765269)
#include <stdio.h>
#define nmax 100
#define mod 702113
int v[nmax];
typedef struct{
int val, next, a, b, c;
}nod;
nod loto[nmax*nmax*nmax];
int hash[mod];
int poz;
int cauta( int nr ){
int pozlist = hash[ nr % mod ];
while( pozlist!=0 && loto[pozlist].val!=nr )
pozlist = loto[pozlist].next;
return pozlist;
}
void insert( int nr, int i, int j, int k ){
loto[++poz].val = nr;
loto[poz].a = i;
loto[poz].b = j;
loto[poz].c = k;
loto[poz].next = hash[nr%mod];
hash[nr%mod] = poz;
}
int main()
{
int n, i, j, k, s, ok, sum;
FILE *fin, *fout;
fin = fopen( "loto.in", "r" );
fscanf( fin, "%d%d", &n, &s );
for( i=0; i<n; i++ )
fscanf( fin, "%d", &v[i] );
fclose( fin );
fout = fopen( "loto.out", "w" );
ok = 0;
for( i=0; i<n && ok==0; i++ ){
for( j=i; j<n && ok==0; j++ ){
for( k=i; k<n && ok==0; k++ ){
sum = v[i] + v[j] + v[k];
insert( sum, i, j, k );
if( s>sum )
ok = cauta( s - sum );
if( ok!=0 ){
fprintf( fout, "%d %d %d %d %d %d\n", v[ loto[ok].a ], v[ loto[ok].b ], v[ loto[ok].c ], v[i], v[j], v[k] );
}
}
}
}
if( ok==0 )
fprintf( fout, "-1\n" );
fclose( fout );
return 0;
}