Cod sursa(job #133316)

Utilizator FlorianFlorian Marcu Florian Data 8 februarie 2008 10:56:39
Problema Loto Scor 35
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.25 kb
#include<stdlib.h>
#include<stdio.h>
FILE*f=fopen("loto.in","r");
FILE*g=fopen("loto.out","w");
typedef struct
        {
        int b,i,j,k;
        }element;
element v[500002];
int n,p=0;
int s;
int c[1002];
void read()
        {
        long i;
        fscanf(f,"%d %d",&n,&s);
        for(i=0;i<n;++i) fscanf(f,"%d",&c[i]);
        long j,k;
        for(i=0;i<n;++i)
                for(j=i;j<n;++j)
                     for(k=j;k<n;++k)
                         {
                         v[p].b=c[i]+c[j]+c[k];
                         v[p].i=c[i]; v[p].j=c[j]; v[p++].k=c[k];
                         }
        }
int intcmp(const void *a, const void *b)
        {
        return *(int*)a-*(int*)b;
        }
int calcul()
        {
        int d,i=0,j=p-1;
        qsort(v,p,sizeof(v[0]),intcmp);
        while(i<=j)
          {
          d=s-v[i].b;
          while(d<v[j].b) --j;
          if(v[j].b==d && i<=j)
             {
             fprintf(g,"%d %d %d %d %d %d\n",v[i].i,v[i].j,v[i].k,v[j].i,v[j].j,v[j].k);
             return 0;
             }
          ++i;
          }



        fprintf(g,"-1");
        return 0;
        }
int main()
        {
        read();
        calcul();
        return 0;
        }