Pagini recente » Cod sursa (job #2183581) | Cod sursa (job #1494190) | Cod sursa (job #400540) | Cod sursa (job #2929486) | Cod sursa (job #3129210)
//ALEXANDRU MICLEA
#include <vector>
#include <algorithm>
#include <string>
#include <cstring>
#include <queue>
#include <map>
#include <set>
#include <unordered_set>
#include <unordered_map>
#include <time.h>
#include <iomanip>
#include <deque>
#include <math.h>
#include <cmath>
#include <assert.h>
#include <stack>
#include <bitset>
#include <random>
#include <chrono>
#include <iostream>
#include <fstream>
#include <array>
using namespace std;
typedef long long ll;
//VARIABLES
unordered_map<ll, ll*> sp;
ll n, s;
ll v[105];
//FUNCTIONS
//MAIN
int main() {
#ifdef INFOARENA
ifstream fin("loto.in"); ofstream fout("loto.out");
cin.rdbuf(fin.rdbuf()); cout.rdbuf(fout.rdbuf());
#endif
cin >> n >> s;
for (int i = 1; i <= n; i++) {
cin >> v[i];
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
for (int k = 1; k <= n; k++) {
ll a[3] = {v[i],v[j],v[k]};
sp[v[i] + v[j] + v[k]]=a;
}
}
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
for (int k = 1; k <= n; k++) {
ll sum2 = v[i] + v[j] + v[k];
ll sum1 = s - sum2;
if (sp.find(sum1) != sp.end()) {
// am gasit solutia
ll *sp1 = sp[sum1];
cout << sp1[0] << " " << sp1[1] << " " << sp1[2] << " " << v[i] << " " << v[j] << " " << v[k];
return 0;
}
}
}
}
cout << "-1";
return 0;
}