Mai intai trebuie sa te autentifici.
Cod sursa(job #2746390)
Utilizator | Data | 27 aprilie 2021 19:25:05 | |
---|---|---|---|
Problema | Loto | Scor | 80 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 1.26 kb |
#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++)
{
for (j = i; j <= index+7; j++)
{
for (k = j; k <= index+7; k++)
{
aux = v[i] + v[j] + v[k];
umap[aux] = k + j * 1000 + i * 1000000;
}
}
}
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;
}