Pagini recente » Cod sursa (job #1520246) | Cod sursa (job #1330683) | Cod sursa (job #1265814) | Cod sursa (job #1504920) | Cod sursa (job #2742449)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
unordered_map<int, pair<int, int> >h;
vector<int>a;
int n, s;
void Citire()
{
int i, x;
fin >> n >> s;
for(i = 1; i <= n; i++)
{
fin >> x;
a.push_back(x);
}
}
void Rezolvare()
{
int i, j, k, suma, s1, s2, s3, s4, s5, s6;
// toate sumele de cate 3 elemente
for(i = 0; i < (int)a.size(); i++)
for(j = 0; j < (int)a.size(); j++)
for(k = 0; k < (int)a.size(); k++)
{
suma = a[i] + a[j] + a[k];
h[suma] = {a[i], a[j]};
}
for(auto i : h)
{
// caut (s - suma din cele 3 elemente)
// returneaza un iterator spre suma aia
auto poz = h.find(s - i.first);
// daca gasesc afisez solutia
if(poz != h.end())
{
s1 = i.second.first;
s2 = i.second.second;
s3 = i.first - s1 - s2;
s4 = poz->second.first;
s5 = poz->second.second;
s6 = s - i.first - s4 - s5;
fout << s1 << " " << s2 << " " << s3 << " " << s4 << " " << s5 << " " << s6 << "\n";
return;
}
}
fout << -1;
}
int main()
{
Citire();
Rezolvare();
fin.close();
fout.close();
return 0;
}