Pagini recente » Cod sursa (job #1922624) | Cod sursa (job #123635) | Cod sursa (job #127626) | Cod sursa (job #1568239) | Cod sursa (job #1057853)
#include <stdlib.h>
#include <iostream>
#include <stdio.h>
#include <unordered_set>
struct suma{
int val, i, j, k;
};
suma sume[200000];
int main()
{
int n, i, s, j, k, nr = 0, sp;
FILE*f = fopen("loto.in", "r"), *g = fopen("loto.out", "w");
fscanf(f, "%d%d", &n, &s);
int *v = (int*)malloc(sizeof(int)*n);
for (i = 0; i < n; i++)
fscanf(f, "%d", &v[i]);
for (i = 0; i < n; i++)
{
for (j = i; j < n; j++)
{
for (k = j; k < n; k++)
{
sume[nr].i = v[i]; sume[nr].j = v[j]; sume[nr].k = v[k];
sume[nr].val = v[i] + v[j] + v[k];
nr++;
}
}
}
std::unordered_set<int> hash;
for (i = 0; i < nr; i++)
hash.insert(sume[i].val);
std::unordered_set<int>::const_iterator verf;
k = 0;
int *sor = (int*)malloc(sizeof(int)* 6);
for (i = 0; i < nr; i++)
{
sp = s - sume[i].val;
verf = hash.find(sp);
if (verf != hash.end())
{
for (j = 0; j < nr; j++)
{
if (sume[j].val == sp)
{
sor[0] = sume[i].i; sor[1] = sume[i].j; sor[2] = sume[i].k;
sor[3] = sume[j].i; sor[4] = sume[j].j; sor[5] = sume[j].k;
for (i = 0; i < 5; i++)
{
for (j = i + 1; j < 6; j++)
{
if (sor[i]>sor[j])
{
int aux = sor[i];
sor[i] = sor[j];
sor[j] = aux;
}
}
}
for (i = 0; i < 6;i++)
fprintf(g, "%d ", sor[i]);
k = 1;
break;
}
}
break;
}
}
if (k == 0)
fprintf(g, "%d", -1);
fclose(f); fclose(g);
return 0;
}