Pagini recente » Cod sursa (job #2338366) | Cod sursa (job #2496101) | Cod sursa (job #1237566) | Cod sursa (job #885456) | Cod sursa (job #963933)
Cod sursa(job #963933)
#include <cstdio>
#include <algorithm>
using namespace std;
int i,aux,n,k,j,p,s,unu,t,m,doi,sum,y,l,sol,x;
int v[110],e[1000001];
int binary(int x)
{
int st=1,dr=l,mij;
while(st<=dr)
{
mij=(st+dr)/2;
if(x==e[mij]) return 1;
else
if(x<e[mij])dr=mij-1;
else st=mij+1;
}
return 0;
}
int main()
{
freopen ("loto.in","r",stdin);
freopen ("loto.out","w",stdout);
scanf("%d%d",&n,&sum);
for(i=1;i<=n;i++){
scanf("%d\n",&v[i]);
//printf("%d ",v[i]);
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
for(y=1;y<=n;y++){
l++;
e[l]=v[i]+v[j]+v[y];
//printf("%d\n",e[l]);
}
sort(e+1,e+1+l);
for (i=1;i<=l;++i)
if(binary(sum-e[i]))
{sol=e[i];break;}
//printf("%d\n",sol);
if (sol==0) scanf("-1");
else
{
x=sol;
for (i=1; i<=n; i++)
for (j=1; j<=n; j++)
for (k=1; k<=n; k++)
if(x==v[i]+v[j]+v[k]){
printf("%d %d %d ",v[i],v[j],v[k]);
i=n+1;
j=n+1;
k=n+1;
}
x=sum-sol;
for (i=1; i<=n; i++)
for (j=1; j<=n; j++)
for (k=1; k<=n; k++)
if(x==v[i]+v[j]+v[k]){
printf("%d %d %d ",v[i],v[j],v[k]);
i=n+1;
j=n+1;
k=n+1;
}
}
}