Pagini recente » Cod sursa (job #2062992) | Cod sursa (job #2162874) | Cod sursa (job #1726588) | Monitorul de evaluare | Cod sursa (job #2486007)
#include <bits/stdc++.h>
#define limit 2e9
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
int n,emax,dp[1005][5005],e[1005],c[1005];
void citire()
{
int i,j;
in>>n>>emax;
for(i=1;i<=n;i++)
in>>e[i]>>c[i];
for(i=1;i<=n;i++)
for(j=1;j<=emax;j++)
dp[i][j]=limit;
}
void dinamica()
{
int i,j;
dp[1][e[1]]=c[1];
for(i=2;i<=n;i++)
{
for(j=0;j<=emax;j++)
{
if(j>=e[i])
dp[i][j]=min(dp[i-1][j],dp[i-1][j-e[i]]+c[i]);
else
dp[i][j]=min(dp[i-1][j],c[i]);
}
}
out<<((dp[n][emax]!=limit)?dp[n][emax]:-1);
}
int main()
{
citire();
dinamica();
return 0;
}