Cod sursa(job #267557)

Utilizator drag0s93Mandu Dragos drag0s93 Data 27 februarie 2009 17:22:05
Problema Zebughil Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include<stdio.h>
#include<algorithm>
#include<stdlib.h>

using namespace std;

#define IN "zebughil.in","r",stdin
#define OUT "zebughil.out","w",stdout
#define Nmax 20

int v[Nmax];
int n,g,cg,camioane;

int cmp(const void *q,const void *p)
{
	int x=*(int*)q,y=*(int*)p;
	if(x>y)
		return 1;
	else return -1;
	return 0;
}
void solve()
{
	int gr=0;
	camioane=0;
	for(int i=1;i<=n;++i)
	{
		gr=v[i];
		if(v[i]>g)
		{
			v[i]=0;
			continue;
		}
		for(int j=n;j>0;--j)
			if(gr+v[j]<=g && i!=j && v[j])
			{
				gr+=v[j];
				v[j]=0;
			}
		v[i]=0;
		if(gr)
			++camioane;
	}
}
void afisare()
{
	printf("%d\n",camioane);
}
int main()
{
	int t=3;
	freopen(IN);
	freopen(OUT);
	while(t)
	{
		scanf("%d%d",&n,&g);
		for(int i=1;i<=n;++i)
			scanf("%d",&v[i]);
		qsort(v+1,n,sizeof(v[0]),cmp);
		solve();
		afisare();
		--t;
	}
	return 0;
}