Pagini recente » Cod sursa (job #99487) | Cod sursa (job #2794285) | Cod sursa (job #766003) | Cod sursa (job #1240892) | Cod sursa (job #1172480)
#include <cstdio>
#include <vector>
#include <algorithm>
#define P pair<pair<int,int>,pair<int,int> >
using namespace std;
vector<P>S;
vector<P>::iterator it,itt;
P aux;
int i,j,k,n,s,suma,a[110];
bool crit(P a,P b)
{
return (a.first.first<b.first.first);
}
void construieste()
{
itt=lower_bound(S.begin(),S.end(),aux,crit);
printf("%d %d %d %d %d %d",it->first.second,it->second.first,it->second.second,itt->first.second,itt->second.first,itt->second.second);
}
int main()
{
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
scanf("%d%d",&n,&s);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
for(k=1;k<=n;k++)
{
suma=a[i]+a[j]+a[k];
S.push_back(make_pair(make_pair(suma,a[i]),make_pair(a[j],a[k])));
}
sort(S.begin(),S.end(),crit);
for(it=S.begin();it!=S.end();it++)
{
aux=*it;
aux.first.first=s-it->first.first;
if(binary_search(S.begin(),S.end(),aux,crit))
{
construieste();
return 0;
}
}
printf("-1");
return 0;
}