Cod sursa(job #212142)

Utilizator silvia_the_bestSilvia Pripoae silvia_the_best Data 4 octombrie 2008 14:50:26
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <cstdio>
#define N 1010
int n,w,e[N][1],min;
int v[10011005];
void read(){
	int i;
	freopen("energii.in","r",stdin);
	scanf("%d%d",&n,&w);
	for (i=1;i<=n;++i)
		scanf("%d%d",&e[i][0],&e[i][1]);
}
void solve(){
	long max,i,j;
	for (i=1;i<=n;++i){
		if (e[i][1]>max)
			max=e[i][1];
		for (j=1;j<=max;++j)
			if (v[j]){
				if (v[j+e[i][1]]>e[i][0]+v[j])
					v[j+e[i][1]]=e[i][0]+v[j];
				if (j+e[i][1]>max)
					max=j+e[i][1];
			}
		v[e[i][1]]=e[i][0];
	}
	min=-1;
	for (i=1;i<=max;++i)
		if (v[i]&&i>w)
			min=i;
}
void write(){
	freopen("energii.out","w",stdout);
	printf("%d\n",min);
}
int main(){
	read();
	solve();
	write();
}