Pagini recente » Cod sursa (job #2816534) | Cod sursa (job #3212229) | Cod sursa (job #1386011) | Cod sursa (job #18258) | Cod sursa (job #2789057)
#include <vector>
#include <algorithm>
#include <unordered_map>
#include <tuple>
using namespace std;
#if TEST
#include <fstream>
ifstream cin("test.in");
ofstream cout("test.out");
#else
#include <fstream>
ifstream cin("loto.in");
ofstream cout("loto.out");
#endif
int main()
{
int n,s;
cin>>n>>s;
vector<int> a(n);
for(int i=0;i<n;i++)
{
cin>>a[i];
}
unordered_map<int,tuple<int,int,int> > m;
m.reserve(n*n*n);
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
for(int k=0;k<n;k++)
{
m[ a[i] + a[j] + a[k] ] = make_tuple(a[i], a[j], a[k]);
}
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
for(int k=0;k<n;k++)
{
int diff = s - a[i] - a[j] - a[k];
if (m.count(diff))
{
tuple<int,int,int> v = m[diff];
cout<<a[i]<<" "<<a[j]<<" "<<a[k]<<" "<<get<0>(v)<<" "<<get<1>(v)<<" "<<get<2>(v);
return 0;
}
}
}
}
cout<<"-1"; //not found
return 0;
}