Cod sursa(job #2392)

Utilizator huntleyTurdean Mihai huntley Data 17 decembrie 2006 09:26:26
Problema Zebughil Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.11 kb
#include<fstream.h>

ifstream in("zebughil.in");
ofstream out("zebughil.out");

void qsort(int tablou[],int prim, int ultim);

int main()
 {
  int n,g,j,a[1000],b[1000],c,k,adev;
  for (int i=1;i<=3;i++)
   {
    in>>n;
    in>>g;
    for (j=1;j<=n;j++)
     {
      in>>a[j];
      b[j]=0;
     }
    qsort(a,1,n);
    k=1;
    do
     {
      adev=0;
      c=0;
      for (j=1;j<=n;j++)
       if (b[j]==0)
        {
         adev=1;
         if (c+a[j]<=g) {c=c+a[j]; b[j]=1;}
        }
      k++;
     }
    while (adev);
    out<<(k-2)<<'\n';
   }
  in.close();
  out.close();
  return 0;
 }

void qsort(int tablou[],int prim, int ultim)
 {
  int temp, min, max, separator;
  min=prim;
  max=ultim;
  separator=tablou[(prim+ultim)/2];
  do
   {
    while (tablou[min]>separator)
     min++;
    while (tablou[max]<separator)
     max--;
    if (min<=max)
     {
      temp=tablou[min];
      tablou[min++]=tablou[max];
      tablou[max--]=temp;
     }
   }
  while (min<=max);
  if (prim<max)
   qsort(tablou,prim,max);
  if (min<ultim)
   qsort(tablou,min,ultim);
 }