Pagini recente » Cod sursa (job #2821637) | Cod sursa (job #3033020) | Cod sursa (job #470257) | Cod sursa (job #36293) | Cod sursa (job #140606)
Cod sursa(job #140606)
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
using namespace std;
long s[1000000];
int main()
{
FILE *f, *g;
long suma, saux, ii, jj, kk, l, r, m, i, j, k, nr, n, a[100];
f = fopen("loto.in", "r");
g = fopen("loto.out", "w");
fscanf(f, "%ld %ld", &n, &suma);
for (i = 1; i <= n; ++i)
fscanf(f, "%ld", &a[i]);
nr = 1;
for (i=1; i <= n; ++i)
for (j=i; j <= n; ++j)
for (k=j; k <= n; ++k)
s[nr++] = a[i] + a[j] + a[k];
sort(s+1, s+nr);
for (i=1; i <= n; ++i)
for (j=i; j <= n; ++j)
for (k=j; k <= n; ++k)
{
saux = suma - a[i] - a[j] - a[k];
l = 1;
r = nr-1;
while (l < r)
{
m = (l+r) / 2;
if (saux < s[m]) r = m-1; else
if (saux > s[m]) l = m+1; else
{
for (ii=1; ii <= n; ++ii)
for (jj=ii; jj <= n; ++jj)
for (kk=jj; kk <= n; ++kk)
if (a[ii]+a[jj]+a[kk]==saux)
{
fprintf(g, "%ld %ld %ld %ld %ld %ld", a[i], a[j], a[k], a[ii], a[jj], a[kk]);
exit(0);
}
}
}
}
fprintf(g, "-1");
fclose(f);
fclose(g);
return 0;
}