Pagini recente » Cod sursa (job #1726065) | Cod sursa (job #214450) | Cod sursa (job #2541188) | Cod sursa (job #1847414) | Cod sursa (job #1562588)
#include <fstream>
#include <vector>
#include <algorithm>
#define NMAX 110
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
int n,suma,vec[NMAX],s1,s2,ok;
struct Suma
{
int s,a,b,c;
} p,p1,p2;
vector<Suma> v;
bool cmp(Suma x, Suma y)
{
return (x.s < y.s);
}
int main()
{
int i, j, k;
vector<Suma>::iterator it, jt;
f>>n>>suma;
for (i = 1;i <= n;i++)
f>>vec[i];
for (i = 1;i <= n;i++)
for (j = i;j <= n;j++)
for (k = j;k <= n;k++)
{
p.a = vec[i];
p.b = vec[j];
p.c = vec[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<<" "<<p2.a<<" "<<p2.b<<" "<<p2.c;
}