Pagini recente » Cod sursa (job #1413639) | Cod sursa (job #1837519) | Cod sursa (job #12357) | Cod sursa (job #1593233) | Cod sursa (job #2514097)
#include <bits/stdc++.h>
#define ff first
#define ss second
using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<int, int> pi;
typedef pair<ll, ll> pll;
typedef pair<ld, ld> pld;
const string file = "loto";
const ll INF = 9223372036854775807ll;
const int dx[] = {1, -1, 0, 0}, dy[] = {0, 0, 1, -1}, inf = 2147483647, nmax = 105;
struct triple{
short x, y, z;
};
int n, S, v[nmax];
unordered_map<int, triple> m;
int main()
{
ifstream fin (file+".in");
ofstream fout (file+".out");
fin >> n >> S;
for (int i = 1; i <= n; ++i)
fin >> v[i];
for (int i = 1; i <= n; ++i)
for (int j = 1; j <= n; ++j)
for (int k = 1; k <= n; ++k)
if (v[i]+v[j]+v[k] <= S)
m[v[i]+v[j]+v[k]] = {i, j, k};
for (auto x : m){
if (m.find(S-x.ff) != m.end()){
triple a = m.find(S-x.ff)->ss;
fout << v[x.ss.x] << " " << v[x.ss.y] << " " << v[x.ss.z] << " " << v[a.x] << " " << v[a.y] << " " << v[a.z] << "\n";
return 0;
}
}
fout << "-1\n";
return 0;
}