Cod sursa(job #179645)

Utilizator nightwachComanescu Mircea nightwach Data 16 aprilie 2008 10:41:07
Problema Loto Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.95 kb
#include <stdio.h>
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]);
    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]=ss+b[k];
                                                        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",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;
}