Pagini recente » Cod sursa (job #451306) | Cod sursa (job #541432) | Joc pe grid | Cod sursa (job #2572476) | Cod sursa (job #884060)
Cod sursa(job #884060)
#include <cstdio>
#include <algorithm>
using namespace std;
int v[103],sume[1000001];
struct numere
{
int x,y,z;
};
numere r[1000001];
bool cautbin(int suma,int n)
{
int i,pas=1<<20;
for(i=0 ; pas != 0 ; pas/=2)
if((i+pas) <= n && sume[i+pas] <= suma)
i+=pas;
if(sume[i] == suma)
return true;
return false;
}
int main()
{
FILE *in = fopen("loto.in","r");
FILE *out = fopen("loto.out","w");
int n,sum,size=0,i,j,k,t,i1,j1,k1;
fscanf(in,"%d%d",&n,&sum);
for(i=1 ; i<=n ; i++)
fscanf(in,"%d",&v[i]);
for(i=1 ; i<=n ; i++)
for(j=i ; j<= n ; j++)
for(k=j ; k<=n ; k++)
sume[++size]=v[i]+v[j]+v[k];
sort(sume + 1 , sume + size + 1 );
//for(i=1 ; i <= size ; i++)
//{
// t=cautbin(sum-sume[i],size);
// if(sume[i]+sume[t] == sum)
//{
// fprintf(out,"%d %d %d %d %d %d\n",r[i].x,r[i].y,r[i].z,r[t].x,r[t].y,r[t].z);
// return 0;
//}
//}
for(i=1 ; i<=n ; i++)
for(j=i ; j<= n ; j++)
for(k=j ; k<=n ; k++){
if(cautbin(sum-(v[i]+v[j]+v[k]),size) == true){
for(i1=1 ; i1<=n ; i1++)
for(j1=i1 ; j1<= n ; j1++)
for(k1=j1 ; k1<=n ; k1++)
if((v[i1]+v[j1]+v[k1]+v[i]+v[j]+v[k]) == sum){
fprintf(out,"%d %d %d %d %d %d\n",v[i1],v[j1],v[k1],v[i],v[j],v[k]);
return 0;
}
}
}
fprintf(out,"-1\n");
return 0;
}