Pagini recente » Cod sursa (job #1275330) | Cod sursa (job #867247) | Cod sursa (job #1736663) | Cod sursa (job #1247428) | Cod sursa (job #189833)
Cod sursa(job #189833)
#include <stdio.h>
#include <stdlib.h>
int comp (const void *v1, const void *v2)
{
unsigned int v1a = *(unsigned int*)v1;
unsigned int v2a = *(unsigned int*)v2;
if (v1a < v2a) return -1;
else if (v1a == v2a) return 0;
else return 1;
}
int main (void)
{
freopen("loto.in", "r", stdin);
freopen("loto.out", "w+", stdout);
unsigned int sum, N, S, *val, i;
unsigned int n1, n2, n3, n4, n5, n6, sum6, sum5, sum4, sum3, sum2,foundsol=0;
scanf("%u %u", &N, &S);
val = malloc(sizeof(unsigned int)*N);
for (i=0; i<N; ++i)
scanf("%u",val+i);
qsort((void*)val, N, sizeof(unsigned int), comp);
for (n6=0; n6<N && !foundsol; ++n6) {
sum6 = val[n6];
if (sum6 > S) continue;
for (n5=0; n5<N && !foundsol; ++n5) {
sum5 = sum6+val[n5];
if (sum5 > S) continue;
for (n4=0; n4<N && !foundsol; ++n4) {
sum4 = sum5+val[n4];
if (sum4 > S) continue;
for (n3 = 0; n3<N && !foundsol; ++n3) {
sum3 = sum4+val[n3];
if (sum3 > S) continue;
for (n2 = 0; n2<N && !foundsol; ++n2) {
sum2 = sum3+val[n2];
if (sum2 > S) continue;
for (n1 = 0; n1<N && !foundsol; ++n1) {
sum = sum2+val[n1];
if (sum == S) {
foundsol = 1;
printf("%u %u %u %u %u %u\n",
val[n1],val[n2],val[n3],val[n4],val[n5],val[n6]);
}
}
}
}
}
}
}
if (!foundsol) printf("-1\n");
fclose(stdin);
fclose(stdout);
return 0;
}