Pagini recente » Cod sursa (job #1748415) | Cod sursa (job #1880494) | Cod sursa (job #2479868) | Cod sursa (job #2495300) | Cod sursa (job #3230131)
#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].e>>gen[i].c;
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+1;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][curr_c]=min(dp[i%2][curr_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]<minim)
rsp_poz=i,minim=dp[n%2][i];
cout<<rsp_poz;
return 0;
}