Pagini recente » Cod sursa (job #1348256) | Cod sursa (job #1004269) | Cod sursa (job #2170097) | Cod sursa (job #197715) | Cod sursa (job #2760723)
#include <fstream>
#include <unordered_map>
#include <vector>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
unordered_map <int, vector < int > > map;
int a[105];
int N, S;
void Citire()
{
fin >> N >> S;
for (int i = 0; i < N; ++i) fin >> a[i];
}
void Rezolvare()
{
//j = i si k = j pt ca numerele nu sunt dist
for (int i = 0; i < N; ++i)
for (int j = i; j < N; ++j)
for (int k = j; k < N; ++k)
{
//un triplet posibil
//suma partiala obt cu 3 din 6 numere
int s = a[i] + a[j] + a[k];
//o salvam
map[s].push_back(a[i]); map[s].push_back(a[j]); map[s].push_back(a[k]);
//daca avem triplet care sa completeze suma s pana la S afisam
if (map.find(S - s) != map.end())
{
fout << map[s][0] << ' ' << map[s][1] << ' ' << map[s][2] << ' ';
fout << map[S - s][0] << ' ' << map[S - s][1] << ' ' << map[S - s][2];
return;
}
}
//nu am gasit suma
fout << -1;
}
int main()
{
Citire();
Rezolvare();
}