Pagini recente » Cod sursa (job #2315921) | Cod sursa (job #1983259) | Cod sursa (job #1494441) | Cod sursa (job #2335778) | Cod sursa (job #1033423)
#include<stdio.h>
#include<stdlib.h>
int compare (const void * a, const void * b)
{
return ( *(int*)a - *(int*)b );
}
int v[100];
struct cord{
int val,x,y,z;
}s[1000000];
int cautbin(int st,int dr,int val)
{
int mij;
while(st<=dr)
{
mij=(st+dr)/2;
if(s[mij].val>val)
dr=mij-1;
if(s[mij].val<val)
st=mij+1;
if(s[mij].val==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=i;j<n;j++)
for(k=j;k<n;k++)
{
s[cont].val=v[i]+v[j]+v[k];
s[cont].x=v[i];
s[cont].y=v[j];
s[cont].z=v[k];
cont++;
}
qsort(s,cont,sizeof(s[0]),compare);
for(i=0;i<cont;i++)
{
int x=S-s[i].val,val=cautbin(i,cont-1,x);
if(val!=-1)
{
fprintf(fout,"%d %d %d ",s[i].x,s[i].y,s[i].z);
fprintf(fout,"%d %d %d",s[val].x,s[val].y,s[val].z);
return 0;
}
}
fprintf(fout,"-1");
return 0;
}