Pagini recente » Cod sursa (job #11472) | Cod sursa (job #1221513) | Cod sursa (job #1425326) | Cod sursa (job #903178) | Cod sursa (job #2891211)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
struct threeTuple
{
int first,second,third;
} disposal;
unordered_map<int, threeTuple> m1;
int v[105], n, s;
void firstgen()
{
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
for(int k=1; k<=n; k++)
{
int suma = v[i] + v[j] + v[k];
m1[suma] = {v[i], v[j], v[k]};
}
}
bool searchgen()
{
unordered_map<int, threeTuple>::iterator caut;
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
for(int k=1; k<=n; k++)
{
int suma = v[i] + v[j] + v[k];
caut = m1.find(s-suma);
if(caut != m1.end())
{
//am gasit solutie
fout<<v[i]<<' '<<v[j]<<' '<<v[k]<<' '<<caut->second.first<<' '<<caut->second.second<<' '<<caut->second.third<<' ';
return 1;
}
}
return 0;
}
int main()
{
fin>>n>>s;
for(int i = 1; i<=n; i++)
fin>>v[i];
firstgen();
if(!searchgen())
fout<<-1;
return 0;
}