Pagini recente » Cod sursa (job #1164007) | Cod sursa (job #562052) | Cod sursa (job #1023368) | Cod sursa (job #855612) | Cod sursa (job #40734)
Cod sursa(job #40734)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("loto.in");
ofstream out("loto.out");
int n, s;
int a[100];
struct sume
{
int val;
int nr1, nr2, nr3;
};
int main()
{
in >> n >> s;
sume *v = new sume[n*n*n];
for ( int i = 0; i < n; ++i )
in >> a[i];
int p = 0;
for ( int i = 0; i < n; ++i )
for ( int j = i; j < n; ++j )
for ( int k = i; k < n; ++k )
{
v[p].val = a[i] + a[j] + a[k];
v[p].nr1 = a[i];
v[p].nr2 = a[j];
v[p].nr3 = a[k];
++p;
}
for ( int i = 0; i < p - 1; ++i )
for ( int j = i+1; j < p; ++j )
if ( v[i].val > v[j].val )
{
sume t = v[i];
v[i] = v[j];
v[j] = t;
}
int sta = 0, sto = p-1;
while ( sta <= sto )
{
int q = v[sto].val + v[sta].val;
if ( q == s )
{
out << v[sto].nr1 << " " << v[sto].nr2 << " " << v[sto].nr3
<< " " << v[sta].nr1 << " " << v[sta].nr2 << " " << v[sta].nr3;
return 0;
}
else if ( q < s )
++sta;
else
--sto;
}
out << -1 << endl;
return 0;
}