Pagini recente » Cod sursa (job #2234304) | Cod sursa (job #2368024) | Cod sursa (job #978980) | Cod sursa (job #406682) | Cod sursa (job #2556517)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
int n,s,v[105],nr=0;
struct pct{
int a,b,c,t;
} pt[1000005];
bool cmp(pct x,pct y)
{
return x.t<y.t;
}
int main()
{
fin>>n>>s;
for(int i=1;i<=n;i++)
fin>>v[i];
sort(v+1,v+n+1);
for(int i=1;i<=n;i++)
for(int j=i;j<=n;j++)
for(int z=j;z<=n;z++)
{
nr++;
pt[nr].a=v[i];
pt[nr].b=v[j];
pt[nr].c=v[z];
pt[nr].t=v[i]+v[j]+v[z];
}
sort(pt+1,pt+nr+1,cmp);
if(2*pt[nr].t<s||2*pt[1].t>s) {
fout<<"-1";
return 0;
}
for(int i=1;i<=n;i++)
{
int st=1,dr=nr,rasp=0,mid;
while(st<=dr)
{
mid=(st+dr)/2;
if(s-pt[mid].t>pt[i].t) st=mid+1;
else if(s-pt[mid].t<pt[i].t) dr=mid-1;
else {
fout<<pt[i].a<<" "<<pt[i].b<<" "<<pt[i].c<<" "<<pt[mid].a<<" "<<pt[mid].b<<" "<<pt[mid].c;
return 0;
}
}
}
}