Pagini recente » Cod sursa (job #279594) | Cod sursa (job #1129373) | Cod sursa (job #1906092) | Cod sursa (job #2633304) | Cod sursa (job #3165851)
#include <bits/stdc++.h>
using namespace std;
struct str{
int x, y, z;
};
const long long max_size = 1e2 + 3;
int v[max_size];
map <int, str> mp;
signed main ()
{
#ifdef LOCAL
freopen("test.in", "r", stdin);
freopen("test.out", "w", stdout);
#else
freopen("loto.in", "r", stdin);
freopen("loto.out", "w", stdout);
#endif // LOCAL
int n, s;
cin >> n >> s;
for (int i = 1; i <= n; i++)
{
cin >> v[i];
}
for (int i = 1; i <= n; i++)
{
for (int j = i; j <= n; j++)
{
for (int k = j; k <= n; k++)
{
int sum = v[i] + v[j] + v[k];
mp[sum] = {i, j, k};
}
}
}
vector <int> ans;
for (int i = 1; i <= n; i++)
{
for (int j = i; j <= n; j++)
{
for (int k = j; k <= n; k++)
{
int sum = v[i] + v[j] + v[k];
if (mp.find(s - sum) != mp.end())
{
ans.clear();
ans.push_back(i);
ans.push_back(j);
ans.push_back(k);
str aux = mp[s - sum];
ans.push_back(aux.x);
ans.push_back(aux.y);
ans.push_back(aux.z);
}
}
}
}
if (ans.size() == 0)
{
cout << -1;
}
else
{
for (auto f : ans)
{
cout << f << " ";
}
}
return 0;
}