Cod sursa(job #14794)

Utilizator nemesisIchim Alexandru Eugen nemesis Data 9 februarie 2007 20:24:05
Problema Loto Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include<stdio.h>
#include<stdlib.h>

struct nod { int s,a,b,c; };

int cmp( const void *i, const void *j)
{
  nod *ei= (nod*)i, *ej= (nod*)j;
  return ei->s - ej->s;
}

int main()
{
  int n, sum, v[105], nr=0;

  
  nod x[100*100*100+10];
  freopen("loto.in","r",stdin);
  scanf("%d %d",&n,&sum);
  for(int i=1; i<=n; ++i) scanf("%d",&v[i]);
  for(int i1=1; i1<=n; ++i1)
    for(int i2=1; i2<=n; ++i2)
      for(int i3=1; i3<=n; ++i3) {
        x[++nr].s= v[i1]+v[i2]+v[i3];
        x[nr].a=i1;
        x[nr].b=i2;
        x[nr].c=i3;
      }
  qsort(x, nr, sizeof(nod), cmp);

 int p=1, q=nr, ok=0;
  while(p<=q) {
    if( x[p].s + x[q].s == sum) {ok=1;break;}
    if( x[p].s + x[q].s > sum) q--;
    else p++;
  }

    freopen("loto.out","w",stdout);
  if(ok) printf("%d %d %d %d %d %d\n",x[p].a,x[p].b,x[p].c,x[q].a,x[q].b,x[q].c);
  else printf("-1\n");
  return 0;
}