Pagini recente » Cod sursa (job #2369814) | Cod sursa (job #92642) | Cod sursa (job #2258603) | Cod sursa (job #1044718) | Cod sursa (job #3229982)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("loto.in");
ofstream fout("loto.out");
int n, s, v[101], suma;
struct punct
{
int x, y, z, s;
};
punct x[100000001];
bool comp(punct a, punct b)
{
return a.s < b.s;
}
int main()
{
f >> n >> s;
for (int i = 1; i <= n; i++)
f >> v[i];
int k = 0;
for (int i = 1; i <= n; i++)
for (int j = i; j <= n; j++)
for (int d = j; d <= n; d++)
x[++k] = { v[i], v[j], v[d], v[i] + v[j] + v[d] };
for (int i = 1; i <= k; i++)
cout << x[i].x << " + " << x[i].y << " + " << x[i].z << " = " << x[i].s << endl;
sort(x + 1, x + k + 1, comp);
for (int i = 1; i <= k; i++)
{
suma = s - x[i].s;
int st = 1, dr = k;
while (st <= dr)
{
int mij = (st + dr) / 2;
if (x[mij].s == suma)
{
fout << x[i].x << " " << x[i].y << " " << x[i].z << " " << x[mij].x << " " << x[mij].y << " " << x[mij].z;
return 0;
}
if (x[mij].s < suma)
st = mij + 1;
else
dr = mij - 1;
}
}
fout << -1;
f.close();
fout.close();
return 0;
}