Pagini recente » Cod sursa (job #2413364) | Cod sursa (job #4010) | Cod sursa (job #99096) | Cod sursa (job #78814) | Cod sursa (job #2203456)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
struct numar
{
int suma;
int a,b,c;
}v[1000001];
int cmp(numar a, numar b)
{
return a.suma>b.suma;
}
int vec[101];
int i,j,k,nr,n,s,st,dr,mij,x;
int main()
{
f>>n>>s;
for(i=1;i<=n;i++)
f>>vec[i];
for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
for(k=j;k<=n;k++)
{
nr++;
v[nr].a=vec[i];
v[nr].b=vec[j];
v[nr].c=vec[k];
v[nr].suma=vec[i]+vec[j]+vec[k];
}
sort(v+1,v+nr+1,cmp);
for(i=1;i<=nr;i++)
{
st=1;dr=nr;
int x=s-v[i].suma;
while(st<=dr)
{
mij=(st+dr)/2;
if(v[mij].suma==x)
{
g<<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;
}
}
g<<-1;
return 0;
}