Pagini recente » Cod sursa (job #1434582) | Cod sursa (job #1466552) | Cod sursa (job #1448600) | Cod sursa (job #2711911) | Cod sursa (job #2823690)
#include <bits/stdc++.h>
using namespace std;
//unordered_map<int,int> sume;
// In acest unordered_map, cheile si valorile sunt intregi
// sume[10] = 30
// 10 se numeste cheie
// 30 se numeste valoare
const int Nmax = 105;
int n, a[Nmax], S;
struct Triplet {
int x, y, z;
};
unordered_map<int, Triplet> sume;
// de la suma cautata catre cele 3 valori care o formeaza
int main() {
ifstream fin("loto.in");
ofstream fout("loto.out");
fin >> n >> S;
for(int i = 1; i <= n; i++) {
fin >> a[i];
}
for(int i = 1; i <= n; i++) {
for(int j = i; j <= n; j++) {
for(int k = j; k <= n; k++) {
sume[a[i] + a[j] + a[k]] = {a[i], a[j], a[k]};
}
}
}
for(int i = 1; i <= n; i++) {
for(int j = i; j <= n; j++) {
for(int k = j; k <= n; k++) {
int complement = S - a[i] - a[j] - a[k];
if(sume.count(complement) > 0) { // count returneaza cate chei cu valoarea complement exista in sume
Triplet t = sume[complement];
fout << a[i] << " " << a[j] << " " << a[k] << " "
<< t.x << " " << t.y << " " << t.z << "\n";
return 0;
}
}
}
}
fout << "-1\n";
}