Pagini recente » Cod sursa (job #148117) | Cod sursa (job #1869916) | Cod sursa (job #386767) | Cod sursa (job #1108819) | Cod sursa (job #3239454)
#include <bits/stdc++.h>
using namespace std;
//ifstream f("in.in");
//ofstream g("out.out");
ifstream f("loto.in");
ofstream g("loto.out");
int n,s;
int v[101];
int ss;
int x[6];
bool ok;
struct three{
bool exists = 0;
int a;
int b;
int c;
};
unordered_map<int,three> mp;
void bkt(int pas){
if(pas == 4){
//cout<<v[x[1]]<<" "<<v[x[2]]<<" "<<v[x[3]]<<'\n';
if(!mp[ss].exists){
mp[ss] = {1,v[x[1]],v[x[2]],v[x[3]]};
}
if(mp[s-ss].exists){
g<<mp[ss].a<<" "<<mp[ss].b<<" "<<mp[ss].c<<" ";
g<<mp[s-ss].a<<" "<<mp[s-ss].b<<" "<<mp[s-ss].c<<" ";
//cout<<"!!";
ok = 1;
}
return;
}
if(ok){
return;
}
for(int i = x[pas-1];i<=n;i++){
ss += v[i];
x[pas] = i;
bkt(pas+1);
ss -= v[i];
}
}
signed main()
{
f>>n>>s;
for(int i=1;i<=n;i++){
f>>v[i];
}
sort(v+1,v+n+1);
x[0] = 1;
ss = 0;
bkt(1);
if(!ok){
g<<-1;
}
return 0;
}