Pagini recente » Cod sursa (job #1650580) | Cod sursa (job #409893) | Cod sursa (job #889948) | Cod sursa (job #1344987) | Cod sursa (job #531071)
Cod sursa(job #531071)
#include <stdio.h>
#include <algorithm>
using namespace std;
int n,s,v[101],d[1000001],ind[1000001],x[3][1000001];
inline int cmp(int i, int j)
{
return d[i]<d[j];
}
int main()
{
int i,j,k,l,r;
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];
x[0][(i-1)*n*n+(j-1)*n+k-1]=i;
x[1][(i-1)*n*n+(j-1)*n+k-1]=j;
x[2][(i-1)*n*n+(j-1)*n+k-1]=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[l]+d[r]!=s) printf("-1");
else printf("%d %d %d %d %d %d",x[0][ind[l]],x[1][ind[l]],x[2][ind[l]],x[0][ind[r]],x[1][ind[r]],x[2][ind[r]]);
return 0;
}