Pagini recente » Cod sursa (job #1980212) | Cod sursa (job #922901) | Cod sursa (job #1977473) | Cod sursa (job #3171588) | Cod sursa (job #2260000)
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream in("loto.in");
ofstream out("loto.out");
struct numar
{
int val;
int i;
int j;
int k;
};
bool cmp (numar A, numar B)
{
return A.val < B.val;
}
int main()
{
int n, s;
in >> n >> s;
vector<numar> 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 = 1; j <= n; j++)
for (int k = 1; k <= n; k++)
v.push_back({val[i] + val[j] + val[k], val[i], val[j], val[k]});
sort(v.begin(), v.end(), cmp);
for (int i = 0; i < v.size(); i++)
{
int dif = s - v[i].val;
int st = i;
int dr = v.size() - 1;
while (st <= dr)
{
int mij = (st + dr) / 2;
if (v[mij].val == dif)
{
out << v[i].i << ' ' << v[i].j << ' ' << v[i].k << ' ' << v[mij].i << ' ' << v[mij].j << ' ' << v[mij].k;
return 0;
}
if (v[mij].val < dif)
st = mij + 1;
else
dr = mij + 1;
}
}
out << -1;
return 0;
}