Cod sursa(job #495323)

Utilizator Balmus_MaximBalmus Maximilian Balmus_Maxim Data 24 octombrie 2010 19:26:56
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <stdio.h>
#include <algorithm>
using namespace std;

struct rr{
	int cost;
	int en;
};

struct pos{
	int p;
	int cost;
};

int msp(pos a, pos b){
	return a.cost<b.cost;
};

pos sol[10009];

rr gen[1010];

int G, W, i,j;

int main()
{
	freopen("energii.in","r",stdin);
	freopen("energii.out","w",stdout);
	scanf("%d",&G);
	scanf("%d",&W);
	for(i=1;i<=G;i++){
		scanf("%d%d",&gen[i].en,&gen[i].cost);
	}
	sol[0].p=1;
	for(i=1;i<=G;i++){
		for(j=10002;j>=0;j--){
			if(sol[j].p==1){
				sol[j+gen[i].en].p=1;
				sol[j+gen[i].en].cost+=gen[i].cost;
			}
		}
	}
	sort(sol+W+1,sol+10001,msp);
	int s=0;
	for(i=W;s==0;i++){
		if(sol[i].p==1){
			s=1;
			printf("%d",sol[i].cost);
		}
	}
	return 0;
}