Cod sursa(job #87270)

Utilizator Matei14Popa-Matei Mihai Matei14 Data 26 septembrie 2007 21:43:28
Problema Energii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<stdio.h>
int main(){
	int g,w,e[1001],c[1001],s=0,s2=0,i,j,ok,min;
	freopen("energii.in","r",stdin);
	freopen("energii.out","w",stdout);
	scanf("%d",&g);
	scanf("%d",&w);
	for(i=0;i<g;++i){
		scanf("%d",&e[i]);
		scanf("%d",&c[i]);
		s+=e[i];
	}
	if(s<w)
		printf("-1\n");
	else{
		s=0;
		while(s<w){
			min=c[0];
			for(i=0;i<g && s<w;++i){
				if(min>c[i])
					min=c[i];
				if((e[i]+s)==w){
					s=w;
					s2+=c[i];
				}
				else
					if(e[i]==w){
						s=w;
						s2=c[i];
					}
			ok=1;
			for(i=0;i<g && ok;++i)
				if(min==c[i]){
					if(s<w){
						s2=s2+c[i];
						s+=e[i];
					}
					for(j=i;j<g-1;++j){
						c[j]=c[j+1];
						e[j]=e[j+1];
					}
					g--;
					ok=0;
				}
			}
		}
	}
	printf("%d\n",s2);
	fclose(stdin);
	fclose(stdout);
	return 0;
}