Pagini recente » Cod sursa (job #3227238) | Cod sursa (job #243196) | Cod sursa (job #1608286) | Cod sursa (job #2250712) | Cod sursa (job #2744631)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
struct item
{
int a, b, c; ///un tuplu pe post de valoare la map(primele 2 numere din care se obtine suma)
};
unordered_map <int, item> hs; ///suma si tuplul
vector <int> v;/// pentru a memora vle
int n, s, ok = 0;///ok - devine 1 cand gasesc o solutie
int main()
{
fin>>n>>s;
for (int i = 0; i < n; i++)
{
int x;
fin>>x;
v.push_back(x);
}
fin.close();
for (int i = 0; i < v.size(); i++)
for (int j = i; j < v.size(); j++)
for (int l = j; l < v.size(); l++)
{
// cout<<v[i]<<' '<<v[j]<<' '<<v[l]<<endl;
int sum = v[i] + v[j] + v[l];
if (s > sum && hs.find(s-sum) != hs.end())
{
fout<<v[i]<<' '<<v[j]<<' '<<v[l]<<' ';
fout<<hs[s-sum].a<<' '<<hs[s-sum].b<<' '<<hs[s-sum].c;
ok = 1;
i = j = l = v.size() + 1;
}
else if (s > sum)
{
item tup;
tup.a = v[i];
tup.b = v[j];
tup.c = v[l];
hs[sum] = tup;
}
}
if (!ok)
{
fout<<-1;
}
fout.close();
}