Cod sursa(job #558080)

Utilizator vladcatrinaVlad Catrina vladcatrina Data 17 martie 2011 08:17:02
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <stdio.h>
#define inf 100001

FILE*f = fopen("energii.in","r");
FILE*g = fopen("energii.out","w");

int n,w,v[5002],i,j;
int e,c,s;

int main() {

	fscanf(f,"%d %d",&n,&w);
	
	for(i=1;i<5002;i++)
		v[i]=inf;
	for(i=1;i<=n;i++){
		fscanf(f,"%d %d",&e,&c);
		s+=e;
		
		
		for(j=w;c<v[j];j--){
			if(v[j]<inf){
				//v[j+e]=v[j]+c;
				if(j+e>w)
					v[w]=v[j]+c;
				else
					v[j+e]=v[j]+c;
			}
		}
		if(c<v[e])
			v[e]=c;
	}
	
	if(s<w)
		fprintf(g,"-1");
	else
		fprintf(g,"%d",v[w]);
	
	fclose(f);
	fclose(g);
	return 0; 	
}