Pagini recente » Cod sursa (job #2294732) | Cod sursa (job #1310818) | Cod sursa (job #1216765) | Cod sursa (job #46856) | Cod sursa (job #2382525)
#include <bits/stdc++.h>
using namespace std;
ifstream in ("loto.in");
ofstream out ("loto.out");
int v[102];
struct suma
{
int x1,x2,x3,s;
};
suma sume[1000005];
int n,s,cnt=0;
bool verfmutare(suma a,suma b)
{
return a.s<b.s;
}
int main()
{
in>>n>>s;
for (int i=1;i<=n;++i)
in>>v[i];
for (int i=1;i<=n;++i)
for (int k=i;k<=n;++k)
for (int j=k;j<=n;++j)
{
++cnt;
sume[cnt].s=v[i]+v[j]+v[k];
sume[cnt].x1=v[i];
sume[cnt].x2=v[k];
sume[cnt].x3=v[j];
}
sort(sume+1,sume+cnt+1,verfmutare);
for(int i = 1; i <= cnt; ++i)
{
int s1=s-sume[i].s;
int l=1,r=cnt,ok=0,ok1=0;
while(l<=r && !ok)
{
int mid=(l+r)/2;
if (sume[mid].s==s1)
{
out << sume[i].x1 << " " << sume[i].x2 << " " << sume[i].x3 << " " << sume[mid].x1 << " " << sume[mid].x2 << " " << sume[mid].x3;
return 0;
}
if (sume[mid].s<s1)
l=mid+1;
else
r=mid-1;
}
}
out << -1;
return 0;
}
}