Pagini recente » Cod sursa (job #2946814) | Cod sursa (job #1570710) | Cod sursa (job #1961763) | Cod sursa (job #1376852) | Cod sursa (job #2893570)
#include <iostream>
#include <algorithm>
#include <fstream>
using namespace std;
ifstream in("loto.in");
ofstream out("loto.out");
struct ListaSume
{
int s, x, y, z;
} lista[1000001];
int n, suma, i, j, k, v[101], ma, nrSume, gasit;
int main()
{
in>>n>>suma;
for(i = 1; i <= n; i++)
in>>v[i];
for(i = 1; i <= n; i++) //facem sume de cate 3 numere, pentru ca apoi sa vedem daca gasim alta suma de 3 nr care adunate sa dea s
for(j = i; j <= n; j++)
for(k = j; k <= n; k++)
{
lista[++nrSume].s = v[i] + v[j] + v[k];
lista[nrSume].x = v[i];
lista[nrSume].y = v[j];
lista[nrSume].z = v[k];
}
sort(v + 1, v + nrSume + 1);
for(i = 1, j = nrSume; i <= j; i++, j--)
{
if(lista[i].s + lista[j].s > suma)
j--;
else if(lista[i].s + lista[j].s < suma)
i++;
if(lista[i].s + lista[j].s == suma)
{
out<<lista[i].x<<" "<<lista[i].y<<" "<<lista[i].z<<" "<<lista[j].x<<" "<<lista[j].y<<" "<<lista[j].z;
gasit = 1;
break;
}
}
if(gasit == 0)
out<<-1;
return 0;
}