Cod sursa(job #302578)

Utilizator stefynr8Space Monkey stefynr8 Data 9 aprilie 2009 00:25:20
Problema Loto Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.37 kb
#include<stdio.h>

int i,j,k,l,m,N,ok;
long v[101],x,s;

void quick(long st,long dr)
{
 long i,j,x;
 i=st;
 j=dr;
 x=v[(i+j)>>1];
 while(i<=j){
            while(x>v[i]) i++;
            while(x<v[j]) j--;
            if(i<=j)    {v[0]=v[i];
                        v[i]=v[j];
                        v[j]=v[0];
                                                
                        i++; j--;
                        }
            } 
 if(st<j) quick(st,j);
 if(i<dr) quick(i ,dr);
}

int cautare(int x, int st, int dr)   
{ int i1,j1,m;   
  i1=st; j1=dr;   
  while (i1<=j1) {   
        m=i1+(j1-i1)/2;   
    if (v[m]==x) return 1;   
     else if (v[m]<x) i1=m+1;   
       else j1=m-1;   
  }   
 
 return 0;
}

int main()
{
 freopen("loto.in","r",stdin);   
 freopen("loto.out","w",stdout);
 
 scanf("%d %ld", &N, &s);
 
 quick(1,N);
 
 for(i=1;i<=N;i++)
      for(j=1;j<=N;j++)
         for(k=1;k<=N;k++)
             for(l=1;l<=N;l++)
                 for(m=1;m<=N;m++)
                    {
                     x=s-v[i]-v[j]-v[k]-v[l]-v[m];
                     if(cautare(x,1,N)){
                                        printf("%ld %ld %ld %ld %ld %ld\n",v[i],v[j],v[k],v[l],v[m],x);
                                        return 0;
                                        }
                     }
 printf("-1");
 return 0;
}