Pagini recente » Cod sursa (job #2631153) | Istoria paginii utilizator/xxdonkxx | Cod sursa (job #742279) | Rating Barbos Andrada (andrada_barbos) | Cod sursa (job #2556952)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
int n,s,v[105],nr=0,afis[7];
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);
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 {
afis[1]=pt[i].a; afis[2]=pt[i].b; afis[3]=pt[i].c;
afis[4]=pt[mid].a; afis[5]=pt[mid].b; afis[6]=pt[mid].c;
sort(afis+1,afis+7);
fout<<afis[1]<<" "<<afis[2]<<" "<<afis[3]<<" "<<afis[4]<<" "<<afis[5]<<" "<<afis[6];
break;
}
}
}
if(afis[1]==0)
fout<<"-1";
}