Pagini recente » Cod sursa (job #2515889) | Cod sursa (job #402096) | Cod sursa (job #717742) | Cod sursa (job #1126395) | Cod sursa (job #147819)
Cod sursa(job #147819)
#include<stdio.h>
int a,b,d,e,h,ok,sol,u,mij,c,k,p,aux,t[1000000],S,n,i,j,su,s[1000000],v[101],l,nr;
int main(){
FILE *f=fopen("loto.in","r");
fscanf(f,"%d %d",&n,&S);
for(i=1;i<=n;i++){
fscanf(f,"%d",&v[i]);
}
fclose(f);
FILE *g=fopen("loto.out","w");
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
su=v[i]+v[j];
for(l=1;l<=n;l++){
nr++;
s[nr]=su+v[l];
t[nr]=nr;
}
}
}
k=nr;
for(i=2;i<=k;i++){
c=i;
p=c>>1;
while((p)&&(s[c]>s[p])){
aux=s[c];
s[c]=s[p];
s[p]=aux;
aux=t[c];
t[c]=t[p];
t[p]=aux;
c=p;
p=c>>1;
}
}
for(i=k;i>1;i--){
aux=s[i];
s[i]=s[1];
s[1]=aux;
aux=t[i];
t[i]=t[1];
t[1]=aux;
p=1;
c=p<<1;
k--;
while(c<=k){
if((s[c]<s[c+1])&&c<k){c++;}
if(s[p]<s[c]){
aux=s[p];
s[p]=s[c];
s[c]=aux;
aux=t[p];
t[p]=t[c];
t[c]=aux;
p=c;
c=p<<1;
}
else{break;}
}
}
ok=1;
for(i=1;i<=nr&&ok;i++){
if(s[i]!=s[i-1]){
sol=S-s[i];
p=1;
u=nr;
while(p<=u){
mij=(p+u)/2;
if(s[mij]>=sol)
u=mij-1;
else
p=mij+1;
}
if(s[p]==sol){
ok=0;
nr=n;
if(t[i]%(nr*nr)==0)
a=t[i]/(nr*nr);
else a=t[i]/(nr*nr)+1;
a=v[a%nr];
if(a==0)a=v[nr];
if(t[i]%nr==0)
b=t[i]/nr;
else b=t[i]/nr+1;
b=v[b%nr];
if(b==0)b=v[nr];
c=v[t[i]%nr];
if(c==0)c=v[nr];
if(t[p]%(nr*nr)==0)
d=t[p]/(nr*nr);
else d=t[p]/(nr*nr)+1;
d=v[d%nr];
if(d==0)d=v[nr];
if(t[p]%nr==0)
e=t[p]/nr;
else e=t[p]/nr+1;
e=v[e%nr];
if(e==0)e=v[nr];
h=v[t[p]%nr];
if(h==0)h=v[nr];
fprintf(g,"%d %d %d %d %d %d",a,b,c,d,e,h);
}
}
}
if(ok==1){
fprintf(g,"%d",-1);
}
fclose(g);
return 0;
}