Pagini recente » Cod sursa (job #1550631) | Cod sursa (job #3184773) | Cod sursa (job #410977) | Cod sursa (job #2767636) | Cod sursa (job #3120750)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
struct element
{
int sum, x, y, z;
}el[1000001];
int n, s, i, a[101], j, k, l, n2, st, dr, mij, sm;
bool ok;
bool comp(element nr1, element nr2)
{
return nr1.sum<nr2.sum;
}
int main()
{
f>>n>>s;
for(i=1; i<=n; i++)
f>>a[i];
for(i=1; i<=n; i++)
{
for(j=i; j<=n; j++)
{
for(k=j; k<=n; k++)
{
sm=a[i]+a[j]+a[k];
el[++l].sum=sm;
el[l].x=i;
el[l].y=j;
el[l].z=k;
}
}
}
sort(el+1, el+l+1, comp);
ok=1;
for(i=1; i<=l*ok; i++)
{
n2=s-el[i].sum;
st=i, dr=l;
while(st<=dr)
{
mij=(st+dr)/2;
if(n2==el[mij].sum)
{
g<<a[el[i].x]<<' '<<a[el[i].y]<<' '<<a[el[i].z]<<' '<<a[el[mij].x]<<' '<<a[el[mij].y]<<' '<<a[el[mij].z];
ok=0;
break;
}
else
{
if(el[mij].sum<n2)
st=mij+1;
else
dr=mij-1;
}
}
}
if(ok==1)
{
g<<"-1";
}
return 0;
}