Cod sursa(job #2443647)

Utilizator lucian2015blaugranadevil lucian2015 Data 28 iulie 2019 22:45:35
Problema Energii Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>
#define maxn 1001
#define maxe 5001
#define inf 10000
using namespace std;

ifstream f("energii.in");
ofstream g("energii.out");
int mat[maxn][maxe], cost[maxn], power[maxn];

int main(){
	int n, energy, i, j, s=0, sol=inf; 
	f>>n>>energy;
	//for(i=0;i<=n;i++)
	//	for(j=0;j<=energy;j++)
		//	mat[i][j]=inf;
	for(i=1;i<=n;i++){
		f>>power[i]>>cost[i];
		s+=power[i];
	}
	if(s<energy){
		g<<-1<<"\n";
		return 0;
	}
	for(i=1;i<=n;i++)
		for(j=0;j<=s;j++){
			//mat[i][j]=mat[i-1][j];
			if(mat[i][j]!=0 && j>=power[i])
			mat[i][j]=min(mat[i][j],mat[i-1][j-power[i]]+cost[i]);
		else if(j>=power[i])
			mat[i][j]=mat[i-1][j-power[i]]+cost[i];
		}

		for(i=energy;i<=s;i++)
			sol=min(sol,mat[n][i]);
		g<<sol<<"\n";
}