Pagini recente » Cod sursa (job #2351637) | Cod sursa (job #2969674) | Cod sursa (job #760435) | Cod sursa (job #960294) | Cod sursa (job #2568580)
#include <iostream>
#include <fstream>
#define nmax 102
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
int n,s,cnt,v[nmax];
struct suma
{
int s,x,y,z;
}sum[nmax*nmax*nmax];
bool cmp(suma a,suma b)
{
return a.s<b.s;
}
int main()
{
fin>>n>>s;
for(int i=1;i<=n;i++)
fin>>v[i];
for(int i=1;i<=n;i++)
for(int j=i;j<=n;j++)
for(int k=j;k<=n;k++)
{
sum[++cnt].s=v[i]+v[j]+v[k];
sum[cnt].x=v[i];
sum[cnt].y=v[j];
sum[cnt].z=v[k];
}
sort(sum+1,sum+cnt+1,cmp);
for(int i=1;i<=cnt;i++)
{
int val=s-sum[i].s;
int st=1,dr=cnt,sol=-1;
while(st<=dr)
{
int mij=(st+dr)/2;
if(sum[mij].s==val)
{
sol=mij;
break;
}
else if(sum[mij].s<val)
st=mij+1;
else
dr=mij-1;
}
if(sol!=-1)
{
fout<<sum[i].x<<" "<<sum[i].y<<" "<<sum[i].z<<" ";
fout<<sum[sol].x<<" "<<sum[sol].y<<" "<<sum[sol].z<<" ";
return 0;
}
}
fout<<"-1";
return 0;
}