Pagini recente » Rating Caraman Alina (alinacaraman) | Cod sursa (job #602509) | Monitorul de evaluare | Cod sursa (job #834247) | Cod sursa (job #1279932)
#include <cstdio>
#include <unordered_map>
using namespace std;
const char IN_FILE[] = "loto.in";
const char OUT_FILE[] = "loto.out";
int main() {
freopen(IN_FILE, "r", stdin);
freopen(OUT_FILE, "w", stdout);
int N, S;
scanf("%d%d", &N, &S);
int v[100];
for (int i = 0; i < N; i++)
scanf("%d", &v[i]);
struct drum {
int unu, doi, trei;
};
unordered_map<int, drum> sume;
int temp, i, j, k;
for (i = 0; i < N; i++)
for (j = 0; j < N; j++)
for (k = 0; k < N; k++) {
temp = v[i] + v[j] + v[k];
if (temp < S) {
sume[temp] = {v[i], v[j], v[k]};
}
}
for (i = 0; i < N; i++)
for (j = 0; j < N; j++)
for (k = 0; k < N; k++) {
temp = v[i] + v[j] + v[k];
if (temp < S && sume.count(S - temp) == 1) {
printf("%d %d %d %d %d %d",
v[i], v[j], v[k],
sume[S - temp].unu,
sume[S - temp].doi,
sume[S - temp].trei
);
return 0;
}
}
printf("%d", -1);
return 0;
}