Pagini recente » Cod sursa (job #2336598) | Cod sursa (job #2203263) | Cod sursa (job #2834974) | Cod sursa (job #3144619) | Cod sursa (job #3230266)
#include <fstream>
#include <algorithm>
#define int unsigned int
using namespace std;
ifstream cin("energii.in");
ofstream cout("energii.out");
struct ceva{
int c,e;
}gen[1001];
int dp[2][10020],n,lim,i;
int32_t main()
{
cin>>n>>lim;
for(i=1;i<=n;i++)
cin>>gen[i].c>>gen[i].e;
for(i=0;i<=1;i++)
for(int curr_c=1;curr_c<=lim*2;curr_c++)
dp[i][curr_c]=2e9;
for(i=1;i<=n;i++)
{
for(int curr_c=1;curr_c<=lim*2;curr_c++)
{
dp[i%2][curr_c]=dp[(i-1)%2][curr_c];
if(gen[i].c<=curr_c)
dp[i%2][curr_c]=min(dp[i%2][curr_c],dp[(i-1)%2][curr_c-gen[i].c]+gen[i].e);
}
dp[i%2][gen[i].c]=gen[i].e;
}
int minim=2e9+1,rsp_poz=0;
for(i=lim;i<=2*lim;i++)
if(dp[n%2][i]!=2e9&&dp[n%2][i]!=0&&dp[n%2][i]<minim)
rsp_poz=i,minim=dp[n%2][i];
if(minim==2e9+1)
{
cout<<-1;
return 0;
}
cout<<minim;
return 0;
}