Cod sursa(job #237732)

Utilizator cosmin79Carabet Cosmin Andrei cosmin79 Data 30 decembrie 2008 16:16:17
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <stdio.h>
int main()
{
	freopen("energii.in","r",stdin);
	freopen("energii.out","w",stdout);
	int g,w,a[1001],b[1001],i,sch,inter,inter2,s=0,cost=0,min,nimic,j,fata,sch2;
	scanf("%d%d",&g,&w);
	for (i=1; i<=g; i++)
		scanf("%d%d",&a[i],&b[i]);
	do
	{
		sch=0;
	    for (i=1; i<=g-1; i++)
			if (a[i]>a[i+1])
			{
				inter=a[i];
				inter2=b[i];
				a[i]=a[i+1];
				a[i+1]=inter;
				b[i]=b[i+1];
				b[i+1]=inter2;
				sch=1;
			}
	}
	while(sch);
	for (i=g; i>=1; i--)
	{
		min=0;
		fata=0;
		sch2=0;
		for (j=i-1; j>=1; j--)
			if (a[i]==a[j])
				if (b[i]>b[j])
				{
					min=j;
					fata=1;
				}
				else
					nimic=0;
		    else
				break;
		s+=a[i];
		if (fata==0)
			cost+=b[i];
		else
		{
			cost+=b[min];
			sch2=b[i];
			b[i]=b[min];
			b[min]=sch2;
		}
		if (s>=w)
			break;
	}
	if (s<w)
		printf("-1");
	else
		printf("%d",cost);		
	return 0;
}