Pagini recente » Cod sursa (job #3158454) | Cod sursa (job #2681403) | Cod sursa (job #1152686) | Cod sursa (job #2373435) | Cod sursa (job #3184888)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
struct poz{
int sum;
int a,b,c;
};
poz mat[1000010];
int v[110], n,s,nr;
bool ch(poz x, poz y)
{
if(x.sum<=y.sum)
return 1;
return 0;
}
int main()
{
fin>>n>>s;
for(int i=0;i<n;++i)
fin>>v[i];
for(int i=0;i<n;++i)
for(int j=0;j<n;++j)
for(int k=0;k<n;++k)
{
mat[nr].sum=v[i]+v[j]+v[k];
mat[nr].a=v[i];
mat[nr].b=v[j];
mat[nr++].c=v[k];
}
sort(mat,mat+nr, ch);
int st, dr, mij, b;
bool ok=0;
for(int i=0;i<nr && ok==0;++i)
{
b=s-mat[i].sum;
st=1; dr=nr-1;
while(st<dr)
{
mij=(st+dr)/2;
if(mat[mij].sum==b) st=dr=mij;
else if(mat[mij].sum<b) dr=mij-1;
else st=mij+1;
}
if(mat[st].sum==b)
{
fout<<mat[st].a<< " "<<mat[st].b<<" "<<mat[st].c<<" ";
fout<<mat[i].a<<" "<<mat[i].b<<" "<<mat[i].c;
ok=1;
}
}
if(ok==0)
fout<<-1;
return 0;
}