Pagini recente » Cod sursa (job #2586289) | Cod sursa (job #181542) | Cod sursa (job #1826526) | Cod sursa (job #2185398) | Cod sursa (job #3154179)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin ("loto.in");
ofstream cout ("loto.out");
int sir[101];
bool gasit;
void Cauta (int factor , int inceput , int suma)
{
if (factor == 2)
{
int stanga = 1 , dreapta = inceput;
while (stanga <= dreapta && sir[stanga] + sir[dreapta] != suma)
(sir[stanga] + sir[dreapta] < suma ? stanga++ : dreapta--);
if (stanga <= dreapta)
{ cout << sir[stanga] << ' ' << sir[dreapta] << ' '; gasit = true; }
return;
}
for (int indice = inceput ; 1LL * factor * sir[indice] >= suma && !gasit ; indice--)
{ Cauta(factor - 1 , indice , suma - sir[indice]); if (gasit) cout << sir[indice] << ' '; }
}
int main ()
{
int lungime , suma;
cin >> lungime >> suma;
for (int indice = 1 ; indice <= lungime ; indice++)
cin >> sir[indice];
sort(sir + 1 , sir + lungime + 1);
Cauta(6 , lungime , suma);
if (!gasit) cout << "-1";
cout.close(); cin.close();
return 0;
}