Pagini recente » Cod sursa (job #934873) | Cod sursa (job #2338950) | Cod sursa (job #1870786) | Cod sursa (job #960985) | Cod sursa (job #1190754)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
int i,iii,ii,ok,sol,dr,mij,x,st,n,nr=1,m,s[10000000],a[101];
int main()
{
f>>n>>m;
for (i=1;i<=n;i++)
f>>a[i];
for (i=1;i<=n;i++)
for (ii=i;ii<=n;ii++)
for (iii=ii;iii<=n;iii++)
{
s[nr]=a[i]+a[ii]+a[iii];nr++;
}
sort (s+1,s+nr+1);
for (i=1;i<=nr;i++)
{st=1;dr=nr;x=m-s[i];
while (st<=dr)
{
mij=(st+dr)/2;
if(x==s[mij])
{
ok=1;
break;
}
else
if(x<s[mij])
dr=mij-1;
else
st=mij+1;
}
if (ok)
{
sol=s[i];
break;
}
}
nr=1;
if (sol==0)
g<<"-1";
else
{
for (i=1;i<=n;i++)
for (ii=1;ii<=n;ii++)
for (iii=1;iii<=n;iii++)
{
s[nr++]=a[i]+a[ii]+a[iii];
if (s[nr-1]==sol)
{
g<<a[i]<<" "<<a[ii]<<" "<<a[iii]<<" ";
i=n;ii=n;iii=n;
}
}
for (i=1;i<=n;i++)
for (ii=1;ii<=n;ii++)
for (iii=1;iii<=n;iii++)
{
s[nr++]=a[i]+a[ii]+a[iii];
if (s[nr-1]==m-sol)
{
g<<a[i]<<" "<<a[ii]<<" "<<a[iii]<<" ";
i=n;ii=n;iii=n;
}
}
}
f.close();
g.close();
}