Pagini recente » Cod sursa (job #2097641) | Cod sursa (job #1966545) | Cod sursa (job #3286247) | Cod sursa (job #1160025) | Cod sursa (job #974376)
Cod sursa(job #974376)
#include<algorithm>
#include<cstdio>
#include<set>
using namespace std;
struct BILET
{
int b1,b2,b3,s;
bool operator < (const BILET & other) const
{
return s<other.s;
}
};
set < BILET > sum;
set < BILET >::iterator st,dr;
int b[110];
BILET aux;
int main()
{
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
int n,S,i,j,k;
scanf("%d%d",&n,&S);
for(i=1;i<=n;i++)
scanf("%d",&b[i]);
for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
for(k=j;k<=n;k++)
{
aux={b[i],b[j],b[k],b[i]+b[j]+b[k]};
sum.insert(aux);
}
st=sum.begin();
dr=sum.end(); advance(dr,-1);
while(st!=sum.end() && dr!=sum.end() && (*st).s<=(*dr).s)
{
while(st!=sum.end() && dr!=sum.end() && (*st).s<=(*dr).s && (*dr).s+(*st).s >=S )
{
if((*st).s + (*dr).s == S)
{
printf("%d %d %d %d %d %d",(*st).b1,(*st).b2,(*st).b3,(*dr).b1,(*dr).b2,(*dr).b3);
return 0;
}
advance(dr,-1);
}
st++;
}
printf("-1\n");
return 0;
}