Pagini recente » Cod sursa (job #433241) | Cod sursa (job #307358) | Cod sursa (job #2305659) | Cod sursa (job #2739999) | Cod sursa (job #2508882)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in ("loto.in");
ofstream out ("loto.out");
struct smecherie
{
int sum,a,b,c;
};
int v[101];
smecherie triple[1000001];
bool cmp (smecherie a,smecherie b)
{
return (a.sum<b.sum);
}
int main()
{
int n,i,j,k,cnt=0,S,cautat;
in>>n>>S;
for (i=1;i<=n;i++)
in>>v[i];
for (i=1;i<=n;i++)
for (j=i;j<=n;j++)
for (k=j;k<=n;k++)
{
cnt++;
triple[cnt].sum=v[i]+v[j]+v[k];
triple[cnt].a=v[i];
triple[cnt].b=v[j];
triple[cnt].c=v[k];
}
sort(triple+1,triple+cnt+1,cmp);
for (i=1;i<=cnt;i++)
{
cautat=S-triple[i].sum;
int l=1,r=cnt,mid,sol=0;
while (l<=r)
{
mid=(l+r)/2;
if (triple[mid].sum==cautat)
{
sol=mid;
break;
}
else if (triple[mid].sum<cautat)
l=mid+1;
else
r=mid-1;
}
if (sol)
{
out<<triple[i].a<<" "<<triple[i].b<<" "<<triple[i].c<<" "<<triple[sol].a<<" "<<triple[sol].b<<" "<<triple[sol].c;
return 0;
}
}
out<<-1;
return 0;
}