Pagini recente » Cod sursa (job #783951) | Cod sursa (job #1730678) | Cod sursa (job #2037393) | Cod sursa (job #2674332) | Cod sursa (job #2203934)
#include <bits/stdc++.h>
using namespace std;
struct loto
{
int a,b,c;
long long suma;
} v[1000100];
int num[111],nr,s,ans[4],rasp,st,dr;
bool aicisesorteaza (loto x, loto y)
{
return x.suma>y.suma;
}
int main()
{
ifstream fin ("loto.in");
ofstream fout ("loto.out");
int n;
fin>>n>>s;
for (int i=1; i<=n; ++i)
{
fin>>num[i];
}
for (int i=1; i<=n; ++i)
{
for (int j=i; j<=n; ++j)
{
for (int k=j; k<=n; ++k)
{
nr++;
v[nr].a=num[i];
v[nr].b=num[j];
v[nr].c=num[k];
v[nr].suma=num[i]+num[j]+num[k];
}
}
}
sort(v+1,v+nr+1,aicisesorteaza);
for(int i=1; i<=nr; i++)
{
st=1;
dr=nr;
int x=s-v[i].suma;
while(st<=dr)
{
int mij=(st+dr)/2;
if(v[mij].suma==x)
{
fout<<v[mij].a<<" "<<v[mij].b<<" "<<v[mij].c<<" "<<v[i].a<<" "<<v[i].b<<" "<<v[i].c;
return 0;
}
if(v[mij].suma<x)
{
dr=mij-1;
}
else
{
st=mij+1;
}
}
}
fout<<"-1";
}