Pagini recente » Cod sursa (job #719713) | Cod sursa (job #2068839) | Cod sursa (job #1881435) | Cod sursa (job #2644217) | Cod sursa (job #3239489)
#include <fstream>
#include <algorithm>
#include <unordered_map>
using namespace std;
ifstream cin("loto.in");
ofstream cout("loto.out");
int n,sum,s,v[101],x[5];
bool ok;
struct Hash{
bool fr;
int a,b,c;
};
unordered_map<int,Hash>mp;
void back(int k){
if(k==4&&ok){
if(!mp[s].fr)
mp[s]={1,x[1],x[2],x[3]};
if(mp[sum-s].fr){
cout<<mp[sum-s].a<<" "<<mp[sum-s].b<<" "<<mp[sum-s].c<<" "<<x[1]<<" "<<x[2]<<" "<<x[3];
ok=0;
}
return ;
}
for(int i=x[k-1];i<=n&&ok;i++)
if(v[i]+s<=sum){
s+=v[i];
x[k]=i;
back(k+1);
s-=v[i];
}
}
int main()
{
cin>>n>>sum;
for(int i=1;i<=n;i++)
cin>>v[i];
sort(v+1,v+n+1);
x[0]=1;
ok=1;
back(1);
if(ok)
cout<<-1;
return 0;
}