Pagini recente » Cod sursa (job #1805705) | Cod sursa (job #1402667)
#include<iostream>
#include<fstream>
#include<cmath>
#define oo 1000000000
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int dp[1005][5005];
pair <int,int> a[1005];
int n, energ;
void citire()
{
int i;
f>>n>>energ;
for(i=1; i<=n; i++){
f>>a[i].first;
f>>a[i].second;
}
}
void dinam()
{
int i,j,enmom=0;
for(i=0; i<=n; i++)
for(j=1; j<=energ; j++)
dp[i][j] = oo;
for(i=1; i<=n; i++){enmom+=a[i].first;
for(j=1; j<=enmom && j<=energ; j++){
if(a[i].first <= j)
dp[i][j] = min(dp[i-1][j], dp[i-1][j-a[i].first] + a[i].second);
else
dp[i][j] = min(dp[i-1][j], a[i].second);
}
}
if(dp[n][energ] == oo)
g<<-1<<"\n";
else
g<<dp[n][energ]<<"\n";
}
int main()
{
citire();
dinam();
return 0;
}