Cod sursa(job #362280)

Utilizator undogSavu Victor Gabriel undog Data 8 noiembrie 2009 19:34:01
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <cstdio>

struct Generator{
	int p,c;
	float e;
};

int main(){
	freopen("energii.in","rt",stdin);
	freopen("energii.out","wt",stdout);
	int n,min,ct,ctc;
	scanf("%d%d",&n,&min);
	int i,j;
	Generator g[10000],aux;
	for(i=0;i<n;i++){
		scanf("%d%d",&g[i].p,&g[i].c);
		g[i].e=(float)g[i].c/g[i].p;
	}
	for(i=0;i<n-1;i++)
		for(j=i+1;j<n;j++)
			if(g[j].e>g[i].e){
				aux=g[j];
				g[j]=g[i];
				g[i]=aux;
			}
	ct=0;ctc=0;
	for(i=0;i<n&&ct<=min;i++){
		ctc+=g[i].c;
		ct+=g[i].p;
	}
	if(i<n)
		printf("-1");
	else{
		for(i--;i>=0;i--){
			if(ct-g[i].p>=min){
				ct-=g[i].p;
				ctc-=g[i].c;
			}
		}
		printf("%d",ctc);
	}
	return 0;
}