Pagini recente » Cod sursa (job #1364192) | Cod sursa (job #1534054) | Cod sursa (job #822897) | ojiliis | Cod sursa (job #2260003)
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream in("loto.in");
ofstream out("loto.out");
void afisare (int x, int&n, vector<int>&val)
{
for (int i = 1; i <= n; i++)
for (int j = i; j <= n; j++)
for (int k = j; k <= n; k++)
if (val[i] + val[j] + val[k] == x)
{
out << val[i] << ' ' << val[j] << ' ' << val[k] << ' ';
return;
}
}
int main()
{
int n, s;
in >> n >> s;
vector<int> v;
vector<int> val(n + 1);
for (int i = 1; i <= n; i++)
in >> val[i];
for (int i = 1; i <= n; i++)
for (int j = i; j <= n; j++)
for (int k = j; k <= n; k++)
v.push_back(val[i] + val[j] + val[k]);
sort(v.begin(), v.end());
for (int i = 0; i < v.size(); i++)
{
int dif = s - v[i];
int st = i;
int dr = v.size() - 1;
while (st <= dr)
{
int mij = (st + dr) / 2;
if (v[mij] == dif)
{
afisare(v[i], n, val);
afisare(v[mij], n, val);
return 0;
}
if (v[mij] < dif)
st = mij + 1;
else
dr = mij + 1;
}
}
out << -1;
return 0;
}