Pagini recente » Statistici MIHAESCU MIHAI (mihaescumihai) | Istoria paginii runda/simulare_oni_2016 | Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #2895898)
#include <iostream>
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
struct tuplu {
int a, b, c;
};
unordered_map <int, tuplu> sume;
int nr, suma_finala, numere[10001], suma;
int main() {
fin >> nr >> suma_finala;
for (int i=0; i<nr; i++)
fin >> numere[i];
for(int i = 0; i < nr; i++)
for(int j = i; j < nr; j++)
for(int k = j; k < nr; k++){
tuplu aux;
aux.a = i;
aux.b = j;
aux.c = k;
suma = numere[i] + numere[j] + numere[k];
sume[suma] = aux;
}
int ok = 0;
for(int i = 0; i < nr && ok == 0; i++)
for(int j = i; j < nr && ok == 0; j++)
for(int k = j; k < nr && ok == 0; k++){
suma = numere[i] + numere[j] + numere[k];
suma = suma_finala - suma;
if (sume.find(suma) != sume.end()){
tuplu aux = sume[suma];
cout << numere[i] << " " << numere[j] << " " << numere[k] << " " << numere[aux.a] << " " << numere[aux.b] << " " << numere[aux.c] << endl;
ok = 1;
}
}
if (ok == 0)
fout << -1 << endl;
return 0;
}