Cod sursa(job #726920)

Utilizator SpiriFlaviuBerbecariu Flaviu SpiriFlaviu Data 27 martie 2012 17:10:18
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<fstream>
#include<algorithm>
#define INF 0x3f3f3f3f
using namespace std;

ifstream fin("energii.in");
ofstream fout("energii.out");

int cost[1005][5005];
int N,G,P[1005],C[1005];

int main()
{

	fin>>N>>G;
	for(int i=1;i<=N;i++)
		fin>>P[i]>>C[i];
	for(int i=0;i<=N;i++)
		for(int j=1;j<=G;j++)
				cost[i][j]=INF;
	for(int i=1;i<=N;i++)
		for(int j=1;j<=G;j++)
			if(P[i]<=j)
				cost[i][j]=min(cost[i-1][j],cost[i-1][j-P[i]]+C[i]);
			else
				cost[i][j]=min(cost[i-1][j],C[i]);
    if(cost[N][G]==INF)
        fout<<-1;
    else
        fout<<cost[N][G];
    fout<<'\n';
    fin.close();
    fout.close();
    return 0;
}