Pagini recente » Cod sursa (job #1743256) | Cod sursa (job #47999) | Cod sursa (job #2460234) | Cod sursa (job #2668480) | Cod sursa (job #1469094)
#include<iostream>
#include<fstream>
#include<cmath>
#define oo 1000000000
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
int dp[1005][5005];
pair <int,int> a[1005];
int n, energ;
void citire()
{
int i;
in>>n>>energ;
for(i=1; i<=n; i++){
in>>a[i].first;
in>>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)
out<<-1<<'\n';
else
out<<dp[n][energ]<<'\n';
}
int main()
{
citire();
dinam();
return 0;
}