Cod sursa(job #118589)

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

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

int main(){

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

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


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

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

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

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

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,"%d %d %d %d %d %d",v[i],v[j],v[k],v[l],v[m],v[mi]);
     }

fclose(g);

return 0;
}