Pagini recente » Cod sursa (job #2007983) | Cod sursa (job #1567765) | Cod sursa (job #1246057) | Cod sursa (job #101943) | Cod sursa (job #974372)
Cod sursa(job #974372)
#include<algorithm>
#include<cstdio>
#include<set>
#include<vector>
using namespace std;
struct BILET
{
int b1,b2,b3,s;
bool operator < (const BILET & other) const
{
return s<other.s;
}
};
BILET make (int a, int b, int c)
{
BILET res={a,b,c,a+b+c};
return res;
}
set < BILET > sum;
set < BILET >::iterator it;
vector <BILET> s;
int b[110];
int main()
{
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
int n,S,i,j,st,dr,k;
scanf("%d%d",&n,&S);
for(i=1;i<=n;i++)
scanf("%d",&b[i]);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
for(k=1;k<=n;k++)
sum.insert(make(b[i],b[j],b[k]));
while(!sum.empty())
{
s.push_back(*sum.begin());
sum.erase(sum.begin());
}
st=0; dr=s.size()-1;
while(st<=dr)
{
while(st<=dr && s[st].s+s[dr].s>=S)
{
if(s[st].s+s[dr].s==S)
{
printf("%d %d %d %d %d %d\n",s[st].b1,s[st].b2,s[st].b3,s[dr].b1,s[dr].b2,s[dr].b3);
return 0;
}
dr--;
}
st++;
}
printf("-1\n");
return 0;
}