Pagini recente » Cod sursa (job #2916231) | Cod sursa (job #2303227) | Cod sursa (job #1687408) | Cod sursa (job #2736682) | Cod sursa (job #2748430)
#include <fstream>
#include <algorithm>
using namespace std;
int n,s,v[101],a[171701];
ifstream f("loto.in");
ofstream g("loto.out");
bool comp (int a,int b)
{
return a<b;
}
void exe(int c)
{
int i,j,k;
for (i=1;i<=n;i++)
for (j=i;j<=n;j++)
for (k=j;k<=n;k++)
if (v[i]+v[j]+v[k]==c)
{
g<<v[i]<<" "<<v[j]<<" "<<v[k]<<" ";
return;
}
}
bool cautare(int m)
{
int i,p=1<<22,sum=s-a[m];
for (i=0;p;p>>=1)
if (i+p<=v[0] && a[i+p]<=sum) i+=p;
if (a[i]==sum)
{
exe(a[i]);
exe(a[m]);
return true;
}
return false;
}
int main ()
{
int i,j,k;
f>>n>>s;
for (i=1;i<=n;i++)
f>>v[i];
for (i=1;i<=n;i++)
for (j=i;j<=n;j++)
for (k=j;k<=n;k++)
a[++v[0]]=v[i]+v[j]+v[k];
sort(a+1,a+v[0]+1,comp);
for (i=1;i<=v[0];i++)
if (cautare(i)) return 0;
g<<"-1\n";
return 0;
}