Pagini recente » Cod sursa (job #406721) | Cod sursa (job #3127072) | Cod sursa (job #180890) | Cod sursa (job #1598839) | Cod sursa (job #1033419)
#include<stdio.h>
#include<stdlib.h>
int compare (const void * a, const void * b)
{
return ( *(int*)a - *(int*)b );
}
int v[100],elem[1000000][3];
long long s[1000000];
int cautbin(int st,int dr,int val)
{
int mij;
while(st<=dr)
{
mij=(st+dr)/2;
if(s[mij]>val)
dr=mij-1;
if(s[mij]<val)
st=mij+1;
if(s[mij]==val)
{
return mij;
}
}
return -1;
}
int main()
{
FILE *fin,*fout;
fin=fopen("loto.in","r");
fout=fopen("loto.out","w");
int n,S;
fscanf(fin,"%d%d",&n,&S);
int i;
for(i=0;i<n;i++)
fscanf(fin,"%d",&v[i]);
int cont=0;
int j,k;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
for(k=0;k<n;k++)
{
s[cont]=v[i]+v[j]+v[k];
elem[cont][0]=v[i];
elem[cont][1]=v[j];
elem[cont][2]=v[k];
cont++;
}
qsort(s,cont,sizeof(s[0]),compare);
for(i=0;i<cont;i++)
{
int x=S-s[i],val=cautbin(i,cont-1,x);
if(val!=-1)
{
fprintf(fout,"%d %d %d ",elem[i][0],elem[i][1],elem[i][2]);
fprintf(fout,"%d %d %d",elem[val][0],elem[val][1],elem[val][2]);
return 0;
}
}
fprintf(fout,"-1");
return 0;
}