Pagini recente » Cod sursa (job #262529) | Cod sursa (job #217031) | Cod sursa (job #2115894) | Cod sursa (job #657854) | Cod sursa (job #133295)
Cod sursa(job #133295)
#include<stdio.h>
int ok,val,mij,u,k2,s1,i,j,l,n,sx,v[104],k,c,p;
struct suma
{
int a,b,c,s2 ;
} s[1000101],aux;
int main(){
FILE *f=fopen("loto.in","r");
FILE *g=fopen("loto.out","w");
fscanf(f,"%d %d",&n,&sx);
for(i=1;i<=n;i++){
fscanf(f,"%d",&v[i]);
}
fclose(f);
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
s1=v[i]+v[j];
for(l=1;l<=n;l++){
k++;
s[k].s2=v[l]+s1;
s[k].a=v[i];
s[k].b=v[j];
s[k].c=v[l];
}
}
}
k2=k;
for(i=2;i<=k;i++){
c=i;
p=c>>1;
while((p)&&(s[c].s2>s[p].s2)){
aux=s[c];
s[c]=s[p];
s[p]=aux;
c=p;
p=c>>1;
}
}
for(i=k;i>1;i--){
aux=s[i];
s[i]=s[1];
s[1]=aux;
p=1;
c=p<<1;
k--;
while(c<=k){
if((s[c].s2<s[c+1].s2)&&c<k){c++;}
if(s[p].s2<s[c].s2){
aux=s[p];
s[p]=s[c];
s[c]=aux;
p=c;
c=p<<1;
}
else{break;}
}
}
ok=1;
for(i=1;i<=k2;i++){
if(s[i].s2!=s[i-1].s2){
val=sx-s[i].s2;
p=1;
u=k2;
while(p<=u){
mij=(p+u)/2;
if(s[mij].s2>=val)
u=mij-1;
else
p=mij+1;
}
if(s[p].s2==val){
ok=0;
break;
}
}
}
if(ok)fprintf(g,"%d",-1);
else{
fprintf(g,"%d %d %d %d %d %d",s[i].a,s[i].b,s[i].c,s[p].a,s[p].b,s[p].c);
}
fclose(g);
return 0;
}