Pagini recente » Cod sursa (job #1128925) | Cod sursa (job #16054) | Cod sursa (job #2174603) | Cod sursa (job #2575166) | Cod sursa (job #2746406)
#include <fstream>
#include <unordered_map>
#include <string>
#include <algorithm>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
int n, aux, s, i, j, k, v[101], index;
unordered_map<int, int> umap;
int main()
{
fin >> n >> s;
for (i = 1; i <= n; i++)
fin >> v[i];
sort(v, v + n);
for (i = 1; i <= n; i++)
{
if (v[i] <= s / 6)
index = i;
else
break;
}
for (i = 1; i <= index+7 && i<=n; i++)
{
for (j = i; j <= index+7 && j<=n; j++)
{
for (k = j; k <= index+7 && k<=n; k++)
{
aux = v[i] + v[j] + v[k];
umap[aux] = k + j * 1000 + i * 1000000;
}
}
}
index=index-7;
if(index<1)
index=1;
for (i = index; i <= n; i++)
{
for (j = i; j <= n; j++)
{
for (k = j; k <= n; k++)
{
aux = v[i] + v[j] + v[k];
if (umap[s - aux] != 0)
{
fout << v[i] << " " << v[j] << " " << v[k] << " " << v[umap[s - aux] % 1000] << " " << v[umap[s - aux] / 1000 % 1000] << " " << v[umap[s - aux] / 1000000];
return 0;
}
}
}
}
fout << -1;
return 0;
}