Pagini recente » Cod sursa (job #1396614) | Cod sursa (job #1722007) | Cod sursa (job #2203939) | Cod sursa (job #2402050) | Cod sursa (job #1558525)
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
#define NMAX 110
int n, suma, nr[NMAX], s1, s2, ok;
struct Suma
{
int s, a, b, c;
} p, p1, p2;
vector<Suma> v;
bool cmp(Suma x, Suma y)
{
if (x.s < y.s) return 1;
return 0;
}
int main()
{
int i, j, k;
vector<Suma>::iterator it, jt;
f>>n>>suma;
for (i = 1;i <= n;i++)
f>>nr[i];
for (i = 1;i <= n;i++)
for (j = i;j <= n;j++)
for (k = j;k <= n;k++)
{
p.a = nr[i];
p.b = nr[j];
p.c = nr[k];
p.s = p.a + p.b + p.c;
v.push_back(p);
}
sort(v.begin(), v.end(), cmp);
for (it = v.begin();it != v.end();it++)
{
s1 = it->s;
p.s = suma - s1;
jt = lower_bound(v.begin(), v.end(), p, cmp);
s2 = jt->s;
if (s1 + s2 == suma)
{
p1 = *it;
p2 = *jt;
ok = 1;
break;
}
}
if (!ok) { g<<-1; return 0; }
g<<p1.a<<" "<<p1.b<<" "<<p1.c<<" ";
g<<p2.a<<" "<<p2.b<<" "<<p2.c;
}