Pagini recente » Cod sursa (job #1743155) | Cod sursa (job #2349858) | Cod sursa (job #639268) | Cod sursa (job #2633063) | Cod sursa (job #2223953)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("loto.in");
ofstream fout ("loto.out");
int v[101];
map <int, vector <int>> hashh [1000000];
void insertt (int x, int i, int j, int k) {
int modulo = x % 1000000;
if (hashh[modulo].count(x)) return;
hashh[modulo][x].push_back(i);
hashh[modulo][x].push_back(j);
hashh[modulo][x].push_back(k);
}
bool isIn (int x, int i, int j, int k) {
int modulo = x % 1000000;
if (hashh[modulo].count(x)) {
for (auto y : hashh[modulo][x]) {
fout << v[y] << ' ';
}
fout << v[i] << ' ' << v[j] << ' ' << v[k];
return true;
}
return false;
}
int main() {
int n;
int s;
fin >> n >> s;
for (int i = 1; i <= n; ++i) {
fin >> v[i];
}
for (int i = 1; i <= n; ++i) {
for (int j = i; j <= n; ++j) {
for (int k = j; k <= n; ++k) {
long long sum = 1LL * v[i] + v[j] + v[k];
if (sum > s) continue;
insertt(sum, i, j, k);
int diff = s - sum;
if (isIn(diff, i, j, k)) {
return 0;
}
}
}
}
fout << -1;
return 0;
}