Pagini recente » Cod sursa (job #1418356) | Cod sursa (job #2479850) | Cod sursa (job #1818935) | Cod sursa (job #892064) | Cod sursa (job #82802)
Cod sursa(job #82802)
#include <stdio.h>
#include <stdlib.h>
#define NMAX 100
int n, s, a[NMAX];
int value[NMAX*NMAX*NMAX], pos[NMAX*NMAX*NMAX], p[NMAX*NMAX*NMAX];
int comp(const void * a, const void * b) {
return value[*(int*)a] - value[*(int*)b];
}
int bcomp(const void * a, const void * b) {
return *(int*)a - value[*(int*)b];
}
int main() {
int i, j, k, l;
int *q;
int key;
freopen("loto.in", "r", stdin);
freopen("loto.out", "w", stdout);
scanf("%d %d", &n, &s);
for (i = 0; i < n; i++)
scanf("%d", &a[i]);
for (i = 0; i < n*n*n; i++)
p[i] = i;
for (i = l = 0; i < n; i++)
for (j = 0; j < n; j++)
for (k = 0; k < n; k++) {
value[l] = a[i] + a[j] + a[k];
pos[l] = a[i] + a[j]*100 + a[k]*10000;
l++;
}
qsort(p, l, sizeof(int), comp);
for (i = 0; i < l; i++) {
key = s - value[p[i]];
if (key > 0) {
q = (int*) bsearch(&key, p, l, sizeof(int), bcomp);
if (q) {
printf("%d %d %d ", pos[p[i]]%100, (pos[p[i]]/100) % 100, (pos[p[i]]/10000) % 100);
printf("%d %d %d\n", pos[*q]%100, (pos[*q]/100) % 100, (pos[*q]/10000) % 100);
return 0;
}
}
}
printf("-1\n");
return 0;
}