Pagini recente » Cod sursa (job #1690443) | Cod sursa (job #74135) | Cod sursa (job #2367301) | Cod sursa (job #1418027) | Cod sursa (job #1770722)
#include <algorithm>
#include <iostream>
#include <fstream>
using namespace std;
struct grup
{
int i1, i2, i3;
int suma;
};
ifstream cin("loto.in");
ofstream cout("loto.out");
const int NMAX = 105;
int v[NMAX];
int contor;
grup a[NMAX * NMAX * NMAX];
bool cmp(grup a, grup b)
{
return a.suma < b.suma;
}
int caut(int x)
{
int st = 1, dr = contor;
while(st <= dr)
{
int mij = (st + dr) / 2;
if(a[mij].suma == x)
return mij;
if(a[mij].suma < x)
st = mij + 1;
else
dr = mij - 1;
}
return -1;
}
int main()
{
int n, s;
cin >> n >> s;
for(int i = 1; i <= n; i ++)
cin >> v[i];
contor = 0;
for(int i = 1; i <= n; i ++)
{
for(int j = i; j <= n; j ++)
{
for(int k = j; k <= n; k++)
{
contor ++;
a[contor].i1 = i1;
a[contor].i2 = i2;
a[contor].i3 = i3;
a[contor].suma = v[i1] + v[i2] + v[i3];
}
}
}
sort(a + 1, a + contor + 1, cmp);
for(int i = 1; i <= contor; i ++)
{
int j = caut(s - a[i].suma);
if(j != -1)
{
out << v[a[i].i1] << " " << v[a[i].i2] << " " << v[a[i].i3] << " ";
out << v[a[j].i1] << " " << v[a[j].i2] << " " << v[a[j].i3] << '\n';
return 0;
}
}
cout << "-1";
return 0;
}