Pagini recente » Cod sursa (job #1433788) | Cod sursa (job #1517519) | Cod sursa (job #473088) | Cod sursa (job #1692429) | Cod sursa (job #2564827)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin("loto.in");
ofstream cout("loto.out");
struct elements_of_sum {
unsigned e1, e2, e3;
unsigned val;
};
elements_of_sum make_elements(unsigned e1, unsigned e2, unsigned e3, unsigned val) {
elements_of_sum x;
x.e1 = e1, x.e2 = e2, x.e3 = e3, x.val = val;
return x;
}
bool operator<(elements_of_sum x, elements_of_sum y) {
return x.val < y.val;
}
ostream& operator<<(ostream& strm, elements_of_sum x) {
strm << x.e1 << " " << x.e2 << " " << x.e3;
return strm;
}
int main() {
unsigned out_of, sum;
cin >> out_of >> sum;
unsigned nums[out_of];
for (unsigned i = 0; i < out_of; i++)
cin >> nums[i];
elements_of_sum sums[out_of * out_of * out_of] = {make_elements(0, 0, 0, 0)};
unsigned sums_cntr = 0;
for (unsigned i = 0; i < out_of; i++)
for (unsigned j = i; j < out_of; j++)
for (unsigned k = j; k < out_of; k++)
sums[sums_cntr++] = make_elements(nums[i], nums[j], nums[k], nums[i] + nums[j] + nums[k]);
sort(sums, sums + sums_cntr);
for (unsigned i = 0; i < sums_cntr; i++)
for (unsigned j = i; j < sums_cntr; j++)
if (sums[i].val + sums[j].val == sum) {
cout << sums[i] << " " << sums[j];
return 0;
}
cout << "-1";
}