Pagini recente » Cod sursa (job #1336454) | Cod sursa (job #2321641) | Cod sursa (job #2859759) | Cod sursa (job #1517625) | Cod sursa (job #3156938)
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream cin("loto.in");
ofstream cout("loto.out");
#define MAXN 100
int v[MAXN+1];
unordered_map<int, int[3]>sum;
int main()
{
int n, s;
cin>>n>>s;
int i;
for(i=0; i<n; i++)
cin>>v[i];
int j, k, ok;
long long restsum;
ok=0;
for(i=0; i<n && ok==0; i++)
{
for(j=i; j<n && ok==0; j++)
{
for(k=j; k<n && ok==0; k++)
{
//precalculare
restsum=v[i]+v[j]+v[k];
sum[restsum][0]=v[i];
sum[restsum][1]=v[j];
sum[restsum][2]=v[k];
restsum=s-(v[i]+v[j]+v[k]);
if(sum.find(restsum)!=sum.end()) //am gasit solutie
{
cout<<v[i]<<" "<<v[j]<<" "<<v[k]<<" "<<sum[restsum][0]<<" "<<sum[restsum][1]<<" "<<sum[restsum][2];
ok=1;
}
}
}
}
if(ok==0)
cout<<-1;
return 0;
}