Pagini recente » Cod sursa (job #614320) | Cod sursa (job #2393661) | Cod sursa (job #937732) | Cod sursa (job #2268791) | Cod sursa (job #153694)
Cod sursa(job #153694)
#include <cstdio>
#include <algorithm>
using namespace std;
struct loto {long x; long p1; long p2; long p3;};
loto x[1000010];
long nrx,i,j,k,n,s,g,sum,aux,poz1,poz2,t,p;
long v[1310];
bool cmp(loto a, loto b)
{
if (a.x<b.x)
return true;
else
return false;
}
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",&v[i]);
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
for (k=1;k<=n;k++)
{
nrx++;
x[nrx].x=v[i]+v[j]+v[k];
x[nrx].p1=i;
x[nrx].p2=j;
x[nrx].p3=k;
}
sort(x+1,x+nrx+1,cmp);
t=nrx;
p=1;
while (p<=t)
{
while (x[p].x+x[t].x>s&&t>0)
t--;
if (x[p].x+x[t].x==s)
{
printf("%d %d %d %d %d %d \n",v[x[p].p1],v[x[p].p2],v[x[p].p3],v[x[t].p1],v[x[t].p2],v[x[t].p3]);
return 0;
}
while (x[p].x+x[t].x<s&&p<=nrx)
p++;
}
printf("-1\n");
return 0;
}