Pagini recente » Cod sursa (job #2583499) | Cod sursa (job #2405806) | Cod sursa (job #702359) | Cod sursa (job #886169) | Cod sursa (job #1317929)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
int a[101],n,s,i,j,k,i1,j1,k1,p,q,stg,dr,mij;
struct bas
{
int x;int y; int z;int nr;
};
bas b[1000001];
bool cmp(bas x,bas y)
{
return(x.nr<y.nr);
}
int main()
{
fin>>n>>s;
for(i=1;i<=n;i++)
fin>>a[i];
for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
for(k=i;k<=n;k++)
{
p++;
b[p].x=i;
b[p].y=j;
b[p].z=k;
b[p].nr=a[i]+a[j]+a[k];
}
sort(b+1,b+p+1,cmp);
for(i=1;i<=p;i++)
{
stg=1;dr=p;
q=s-b[i].nr;
while(stg<=dr)
{
mij=(stg+dr)/2;
if(q==b[mij].nr)
{fout<<a[b[i].x]<<" "<<a[b[i].y]<<" "<<a[b[i].z]<<" "<<a[b[mij].x]<<" "<<a[b[mij].y]<<" "<<a[b[mij].z];
return 0;}
else
if(q<b[mij].nr)
dr=mij-1;
else
stg=mij+1;
}
}
fout<<"-1";
return 0;
}