Pagini recente » Cod sursa (job #2276527) | Cod sursa (job #1320135) | Cod sursa (job #2827788) | Cod sursa (job #319959) | Cod sursa (job #2216515)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream fin ("loto.in");
ofstream fout ("loto.out");
struct loto {
int s, x, y, z;
};
vector<loto> bilet;
bool wayToSort (loto a, loto b) {
return a.s < b.s;
}
int bin_search(int f, int l, int x) {
if (f > l)
return -1;
else
{
int m = (f + l) / 2;
if (x == bilet[m].s)
return m;
if (x > bilet[m].s)
return bin_search(m + 1, l, x);
else
return bin_search(f, m - 1, x);
}
}
int main()
{
int N, S, i, nr[102], j, k, poz;
fin >> N >> S;
for (i = 0; i < N ; i++) {
fin >> nr[i];
}
for (i = 0; i < N; i++)
for (j = i; j < N; j++)
for (k = j; k < N; k++) {
bilet.push_back({nr[i] + nr[j] + nr[k], nr[i], nr[j], nr[k]});
}
sort(bilet.begin(), bilet.end(), wayToSort);
for (unsigned int t = 0; t < bilet.size(); t++) {
poz = bin_search(0, bilet.size(), S - bilet[t].s);
if (poz != -1) {
fout << bilet[t].x << ' '<< bilet[t].y<< ' '<< bilet[t].z << ' ';
fout << bilet[poz].x << ' '<< bilet[poz].y << ' '<< bilet[poz].z << ' ';
return 0;
}
}
fout << -1;
}