Cod sursa(job #334983)

Utilizator mlazariLazari Mihai mlazari Data 28 iulie 2009 12:53:57
Problema Loto Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include<stdio.h>

#define NMAX 100

int n,s,sp,i,j,pmin,posibil=1,loto[NMAX],answer[6];

int main() {
  freopen("loto.in","r",stdin);
  freopen("loto.out","w",stdout);

  scanf("%d %d",&n,&s);
  for(i=0;i<n;i++) scanf("%d",loto+i);

  for(i=0;i<n-1;i++) {
    pmin=i;
    for(j=i+1;j<n;j++)
     if(loto[j]<loto[pmin]) pmin=j;
    j=loto[i];
    loto[i]=loto[pmin];
    loto[pmin]=j;
  }

  if(s>6*loto[n-1]) posibil=0;
  else {
    i=0;
    sp=0;
    answer[0]=-1;
    while((i<5)||(sp!=s)||(answer[5]==-1)) {
      if(answer[i]==n-1)
       if(i) {
         sp-=loto[n-1];
         i--;
       }
       else {
         posibil=0;
         break;
       }
      else {
        answer[i]++;
        sp+=loto[answer[i]];
        if(answer[i]>=0) sp-=loto[answer[i]-1];
        if(i<5) answer[++i]=-1;
      }
    }
  }

  if(posibil)
   for(i=0;i<6;i++) printf("%d ",loto[answer[i]]);
  else printf("-1");
  return 0;
}