Pagini recente » Cod sursa (job #3185232) | Cod sursa (job #2967486) | Cod sursa (job #355373) | Cod sursa (job #787488) | Cod sursa (job #2438958)
#include <bits/stdc++.h>
using namespace std;
ifstream in("loto.in");
ofstream out("loto.out");
int n,s,a[110],q,p;
struct loto
{
int val,n1,n2,n3;
}v[1000010];
bool cmp(loto a ,loto b)
{
return a.val<b.val;
}
int cb(int s,int l,int r)
{
while(l<=r)
{
int m=(l+r)/2;
if(v[m].val==s) return m;
if(v[m].val<=s) r=m-1;
else l=m+1;
}
return 0;
}
int main()
{
in>>n>>s;
for(int i=1;i<=n;i++) in>>a[i];
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
for(int k=1;k<=n;k++)
if(a[i]+a[j]+a[k]<s)
{
v[++q].val=a[i]+a[j]+a[k];
v[q].n1=a[i];
v[q].n2=a[j];
v[q].n3=a[k];
}
sort(v+1,v+q+1,cmp);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
for(int k=1;k<=n;k++)
{
p=0;
if(s-a[i]-a[j]-a[k]>=0) p=cb(s-a[i]-a[j]-a[k],1,q);
if(p) {
out<<a[i]<<" "<<a[j]<<" "<<a[k]<<" "<<v[p].n1<<" "<<v[p].n2<<" "<<v[p].n3;
return 0;
}
}
out<<-1;
}