Cod sursa(job #253470)

Utilizator ConsstantinTabacu Raul Consstantin Data 5 februarie 2009 20:22:19
Problema Loto Scor 35
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include<stdio.h>
#include<algorithm>
using namespace std;
struct sume{unsigned int s,a,b,c;} v[1100000];
unsigned int x[105],m,k,d;
int i,j,l,n,p,q,mij ;

int cmp(sume a,sume b)
       {return a.s<b.s;}
int main(){
freopen("loto.in","r",stdin);
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
        scanf("%d",&x[i]);

for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
                for(l=1;l<=n;l++)
                        {v[++k].s=x[i]+x[j]+x[l];
                        v[k].a=x[i];
                        v[k].b=x[j];
                        v[k].c=x[l];

                        }

sort(v+1,v+1+k,cmp);

freopen("loto.out","w",stdout);
for(i=1;i<=k&&v[i].s<=m/2;i++)
        {d=m-v[i].s;
         p=1;q=k;
         while(p<=q)
                {mij=(p+q)>>1;
                if(v[mij].s==d)
         {printf("%d %d %d %d %d %d\n",v[i].a,v[i].b,v[i].c,v[mij].a,v[mij].b,v[mij].c);
       return 0;}
       else
       if(v[mij].s>d)
                q=mij-1;
      else
                p=mij+1;
                
        }
    }
printf("-1\n");
return 0;}