Cod sursa(job #558087)

Utilizator cnt_tstcont teste cnt_tst Data 17 martie 2011 08:23:02
Problema Energii Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<stdio.h>
FILE *f=fopen("energii.in", "r");
FILE *g=fopen("energii.out", "w");
int n,x,i,j;
int a[1002];
int b[5002];
int c[5002];
int min(int p, int q){
	if (q<p)
		return q;
	else
		return p;
}

int main (){
	fscanf(f,"%d %d" ,&n, &x);
	c[0]=0;
	for (i=1;i<=x;i++){
		c[i]=1<<29;
	}
	for (i=1;i<=n;i++){
		fscanf(f, "%d %d", &a[i],&b[i]);
	}
	
	for (i=1;i<=n;i++){
		for(j=x;j>=0;j--){
			if(c[j]!=1<<29){
				if (j+a[i]>=x){
					c[x]=min(c[x],c[j]+b[i]);
				}
				else{
					c[j+a[i]]=min(c[j+a[i]], c[j]+b[i]);
				}
			}
		}
	}
	if(c[x]==1<<29)
		fprintf(g, "-1");
	
	fprintf(g, "%d", c[x]);
	fclose(f);
	fclose(g);
	return 0;
}