Cod sursa(job #179655)

Utilizator nightwachComanescu Mircea nightwach Data 16 aprilie 2008 10:51:20
Problema Loto Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.02 kb
#include <stdio.h>
#include <algorithm>

using namespace std;

long n,s,b[128],ss,sss;
long (*a)[4]=new long[524288][4];
int main(void)
{
    long i,j,k,l,x,y;
    FILE *f;
    f=fopen("loto.in","rt");
    fscanf(f,"%ld %ld",&n,&s);
    for(i=0;i<n;i++)
                    fscanf(f,"%ld",&b[i]);
    sort(b,b+n);
    l=0;
    fclose(f);
    f=fopen("loto.out","wt");
    for(i=0;i<n;i++){
                    for(j=i;(j<n)&&(b[i]<=s);j++){
                                     ss=b[j]+b[i];
                                    for(k=j,sss=ss+b[k];(k<n)&&(sss<=s);k++,sss=ss+b[k])
                                                    {
                                                        a[l][0]=sss;
                                                        a[l][1]=i;
                                                        a[l][2]=j;
                                                        a[l][3]=k;
                                                        l++;
                                                   //     printf("%ld ",a[l-1][0]);
                                                        }}}
    k=1;
    for(i=0;(i<l)&&k;i++)
    {
                         ss=s-a[i][0];
                    for(j=i;(j<l)&&k&&(a[j][0]<=ss);j++)
                                    if(ss==a[j][0])
                                    {
                                                   x=i;
                                                   y=j;
                                                      k=0;
                                                      break;
                                                      }
                                                      }
 //  printf("a %ld %ld %ld",k,x,y);
   // scanf("%ld",&n);
//    i--;j--;
    if(k)
    {
            fprintf(f,"-1");
            fclose(f);
            return 0;
            }
    fprintf(f,"%ld %ld %ld %ld %ld %ld ",b[a[x][1]],b[a[x][2]],b[a[x][3]],b[a[y][1]],b[a[y][2]],b[a[y][3]]);
    fclose(f);
    
    return 0;
}