Pagini recente » Cod sursa (job #373947) | Cod sursa (job #2585137) | Cod sursa (job #1224115) | Cod sursa (job #1163205) | Cod sursa (job #1707837)
# include <stdio.h>
# include <stdlib.h>
# include <algorithm>
# define MAX_N 101
# define infinit 100000001
int v[MAX_N];
struct pereche {
int a, b, c;
int s;
} p[MAX_N * MAX_N * MAX_N];
inline int cmp( struct pereche a, struct pereche b ) {
return a.s <= b.s;
}
int main() {
FILE *fin = fopen( "loto.in", "r" ), *fout = fopen( "loto.out", "w" );
int n, i, j, k, m, S;
fscanf( fin, "%d%d", &n, &S );
for ( i = 1; i <= n; i ++ )
fscanf( fin, "%d", &v[i] );
m = 0;
for ( i = 1; i <= n; i ++ )
for ( j = 1; j <= n; j ++ )
for ( k = 1; k <= n; k ++ ) {
p[m].a = v[i];
p[m].b = v[j];
p[m].c = v[k];
p[m].s = v[i] + v[j] + v[k];
m ++;
}
std::sort( p, p + m, cmp );
j = m - 1;
i = -1;
while ( i < m - 1 && i < j && p[i].s + p[j].s != S ) {
i ++;
while ( i < j && p[i].s + p[j].s > S )
j --;
}
if ( p[i].s + p[j].s == S )
fprintf( fout, "%d %d %d %d %d %d", p[i].a, p[i].b, p[i].c, p[j].a, p[j].b, p[j].c );
else
fprintf( fout, "-1" );
fclose( fin );
fclose( fout );
return 0;
}