Pagini recente » Cod sursa (job #3266897) | Cod sursa (job #2228476) | Cod sursa (job #1822934) | Cod sursa (job #461829) | Cod sursa (job #34668)
Cod sursa(job #34668)
#include <cstdio>
#include <algorithm>
#include <string>
using namespace std;
int dp[5001];
bool x[5001];
int c[1001], e[1001], n, S;
int main()
{
freopen("energii.in", "r", stdin);
scanf("%d\n", &n);
scanf("%d\n", &S);
for(int i=1;i<=n;i++) scanf("%d %d\n", &e[i], &c[i]);
memset(dp, 0x3f3f3f3f ,sizeof(dp));
x[0]=1;
dp[0]=0;
x[e[1]]=1;
dp[e[1]]=c[1];
int i, j;
for(i=2;i<=n;i++)
for(j=S;j>=0;j--)
if(x[j])
{
if(j+e[i]>=S)
{
//printf("%d %d %d\n", j+e[i], j, dp[j]+c[i]);
x[S]=1;
dp[S]=min(dp[j]+c[i], dp[S]);
}
else
{
x[j+e[i]]=1;
dp[j+e[i]]=min(dp[j]+c[i], dp[j+e[i]]);
}
}
// for(i=1;i<=S;i++) printf("%d ",dp[i]);
freopen("energii.out", "w", stdout);
printf("%d\n", dp[S]);
return 0;
}