Pagini recente » Cod sursa (job #2210715) | Cod sursa (job #1160787) | Cod sursa (job #2793519) | Cod sursa (job #2041338) | Cod sursa (job #1415407)
#include<fstream>
#include<iostream>
#include<algorithm>
using namespace std;
ifstream in("loto.in");
ofstream out("loto.out");
int v[101],w[1000001], z;
bool cautbin(int x)
{
int pas=1<<19,i=0;
for(i=0;pas>0;pas=pas>>1)
if(i+pas<=z&&w[i+pas]<=x)i+=pas;
return w[i]==x;
}
int main()
{
int n,i,s,a,b,c,k=1,j,x=1,i1,i2,i3;
in>>n>>s;
for(i=1;i<=n;i++)in>>v[i];
i=1;
for(a=1;a<=n;a++)
for(b=1;b<=n;b++)
for(c=1;c<=n;c++)
{
++z;
w[z]=v[a]+v[b]+v[c];
}
sort(w+1,w+z+1);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
for(k=1;k<=n;k++)
{
x=s-v[i]-v[k]-v[j];
if(cautbin(x)==true)
{
out<<v[i]<<" "<<v[j]<<" "<<v[k]<<" ";
for(i1=1;i1<=n;i1++)
for(i2=1;i2<=n;i2++)
for(i3=1;i3<=n;i3++)
if(v[i1]+v[i2]+v[i3]==x)
{
out<<v[i1]<<" "<<v[i2]<<" "<<v[i3];
return 0;
}
}
}
out<<-1;
return 0;
}