Cod sursa(job #194815)

Utilizator katakunaCazacu Alexandru katakuna Data 14 iunie 2008 14:35:54
Problema Loto Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include<stdio.h>
#include<algorithm>
using namespace std;

int m,S,v[105];

struct suma {int s,a,b,c;}s[1000001];

int n,i,j,l;


int cmp(suma a,suma b){
return a.s<b.s;
}


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);

int y;

 for(i=1;i<=n;i++){
   for(j=1;j<=n;j++){
     for(l=1;l<=n;l++){
     y=v[i]+v[j]+v[l];

       if(y<=S){
       
         m++;
         s[m].s=y;
         s[m].a=v[i];
         s[m].b=v[j];
         s[m].c=v[l];

       }
       
     }
   }
 }
 

sort(s+1,s+m+1,cmp);

int sol,p,u,mij;

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


   p=1;
   u=m;


  while(p<=u){


   if(s[p].s+s[u].s==S){
   fprintf(g,"%d %d %d %d %d %d",s[u].a,s[u].b,s[u].c,s[p].a,s[p].b,s[p].c);
   return 0;
   }

   else{

     if(s[p].s+s[u].s>S)
     u--;

     else
     p++;

   }

  }




fprintf(g,"%d",-1);


fclose(g);

return 0;
}