Cod sursa(job #447563)

Utilizator de3de3Ilinca Diana Andreea de3de3 Data 29 aprilie 2010 00:04:24
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include<fstream.h>
ifstream f("energii.in");
ofstream h("energii.out");
int n, w, c[5010], i, j, wi, wmax, cc;
struct generator { int e, c;} g[1010];
const int INF=5010*1010;
int main(){
	f>>n>>w;
	wmax=0;
	for(i=1;i<=n;i++)
		f>>g[i].e>>g[i].c;
	for(i=1;i<=w;i++)
		c[i]=INF;
	c[0]=0;
	for(i=1;i<=n;i++){
		for(j=wmax;j>=0;j--)
			if(c[j]!=INF){
				wi=j+g[i].e;
				cc=c[j]+g[i].c;
				if(wi>w) wi=w;
				if(c[wi]>cc)
					c[wi]=cc;
				if(wi>wmax)
					wmax=wi;
			}
	}
	if(c[w]!=INF)
		h<<c[w];
	else
		h<<-1;
	f.close();
	h.close();
	return 0;
}