Pagini recente » Cod sursa (job #1571623) | Cod sursa (job #2421728) | Cod sursa (job #2834777) | Cod sursa (job #1460671) | Cod sursa (job #2456586)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in("loto.in");
ofstream out("loto.out");
struct four {
long long int val1, val2, val3, sum;
};
four a[1000005];
long long int n, s, v[105], contor = 1;
bool comp(four x, four y) {
return x.sum < y.sum;
}
int main() {
ios_base::sync_with_stdio(false);
in.tie(NULL), out.tie(NULL);
in >> n >> s;
for (int i = 1; i <= n; i++)in >> v[i];
for (int i = 1; i <= n; i++) {
for (int j = i; j <= n; j++) {
for (int k = j; k <= n; k++) {
a[contor].val1 = v[i];
a[contor].val2 = v[j];
a[contor].val3 = v[k];
a[contor].sum = v[i] + v[j] + v[k];
contor++;
}
}
}
sort(a + 1, a + contor + 1, comp);
for (int i = 1; i <= contor; i++) {
int left = 1, right = contor;
int val = s - a[i].sum;
while (left <= right) {
int mid = (left + right) / 2;
if (a[mid].sum == val) {
out << a[mid].val1 << " " << a[mid].val2 << " " << a[mid].val3 << " " << a[i].val1 << " " << a[i].val2 << " " << a[i].val3;
return 0;
}
if (val < a[mid].sum)right = mid - 1;
else left = mid + 1;
}
}
out << -1;
return 0;
}