Pagini recente » Rating Bodor David (mrchipser) | Cod sursa (job #2963871) | Cod sursa (job #1185369) | Cod sursa (job #2887842) | Cod sursa (job #1279715)
#include <cstdio>
#include <cstdlib>
FILE *in = fopen("loto.in", "r");
FILE *out = fopen("loto.out", "w");
int cmp (const void *p1, const void *p2)
{
int a = *(int*)p1, b = *(int*)p2;
return a - b;
}
bool p(int *v, int n, int k, int s, int *sol, int ii)
{
if (k == 6)
return s == 0;
for (int i = ii; i < n; i++) {
sol[k] = v[i];
if (p(v, n, k+1, s-v[i], sol, i))
return true;
}
return false;
}
int main()
{
int n, s;
fscanf(in, "%d %d", &n, &s);
int v[n], sol[n];
for (int i = 0; i < n; i++)
fscanf(in, "%d", &v[i]);
qsort(v, n, sizeof(int), cmp);
if (p(v, n, 0, s, sol, 0)) {
for (int i = 0; i < 6; i++) {
fprintf(out, "%d ", sol[i]);
}
} else {
fprintf(out, "-1");
}
return 0;
}