Cod sursa(job #458134)

Utilizator maditzaaciuca madalina maditzaa Data 23 mai 2010 12:55:54
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include<fstream.h>
ifstream f("energii.in");
ofstream gg("energii.out");
int n, w, i, j, wi, wmax, cc;
int c[5010];
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)
		gg<<c[w];
	else
		gg<<-1;
	f.close();
	gg.close();
	return 0;
}