Pagini recente » Cod sursa (job #2336314) | Cod sursa (job #3229466) | Cod sursa (job #1387892) | Cod sursa (job #1527849) | Cod sursa (job #531102)
Cod sursa(job #531102)
#include <stdio.h>
#include <algorithm>
using namespace std;
int n,s,v[101],d[1000001],ind[1000001];
inline int cmp(int i, int j)
{
return d[i]<d[j];
}
int main()
{
int i,j,k,l,r,aux,a,b,c;
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)
{
d[(i-1)*n*n+(j-1)*n+k-1]=v[i]+v[j]+v[k];
ind[(i-1)*n*n+(j-1)*n+k-1]=(i-1)*n*n+(j-1)*n+k-1;
}
sort(ind,ind+n*n*n,cmp);
l=0;r=n*n*n-1;
while ((l<r)&&(d[ind[l]]+d[ind[r]]!=s))
if (d[ind[l]]+d[ind[r]]>s) --r;
else ++l;
if (d[ind[l]]+d[ind[r]]!=s) printf("-1");
else
{
aux=ind[l];
a=(ind[l]%n)+1;
b=(ind[l]/n)%n+1;
c=ind[l]/(n*n)+1;
printf("%d %d %d ",v[a],v[b],v[c]);
aux=ind[r];
a=(ind[r]%n)+1;
b=(ind[r]/n)%n+1;
c=ind[r]/(n*n)+1;
printf("%d %d %d ",v[a],v[b],v[c]);
}
return 0;
}