Cod sursa(job #118587)

Utilizator katakunaCazacu Alexandru katakuna Data 26 decembrie 2007 20:11:38
Problema Loto Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include<stdio.h>

long int i2,max,n,i,k,j,l,m,s,r,p,u,mi;
long int v[101],t[101];

int main(){

FILE *f=fopen("loto.in","r");

fscanf(f,"%ld",&n);
fscanf(f,"%ld",&s);


for(i=1;i<=n+1;i++){
v[i]=-1;
}

  for(i=1;i<=n;i++){
  fscanf(f,"%ld",&v[i]);
    if(v[i]>max)max=v[i];
  }
fclose(f);

 for(i=1;i<=max;i++){
   if(v[i]!=-1){k++;t[k]=v[i];}
 }

FILE *g=fopen("loto.out","w");

long int ok=1;

 for(i=1;i<=n&&ok;i++){

    for(j=2;j<=n&&ok;j++){

       for(k=3;k<=n&&ok;k++){

	  for(l=4;l<=n&&ok;l++){

	     for(m=5;m<=n&&ok;m++){
	     r=s-(t[i]+t[j]+t[k]+t[l]+t[m]);
	     p=1;u=n;

		  while(p<=u){
		  mi=(p+u)/2;

		     if(v[mi]==r){ok=0;break;}

		     if(v[mi]>r){
		     u=mi-1;
		     }
		     if(v[mi]<r){
		     p=mi+1;
		     }


		  }
	     }
	  }
       }

    }

 }
if(ok==1){fprintf(g,"%d",-1); }
     else {fprintf(g,"%ld %ld %ld %ld %ld %ld",v[i],v[j],v[k],v[l],v[m],v[mi]);
     }

fclose(g);

return 0;
}