Pagini recente » Cod sursa (job #2754642) | Cod sursa (job #694960) | Cod sursa (job #2151985) | Cod sursa (job #1659511) | Cod sursa (job #806561)
Cod sursa(job #806561)
#include <cstdio>
#include <algorithm>
#include<stdlib.h>
#include<string.h>
using namespace std;
int G, W;
int E[1001], C[1001];
int D[1001][5002];
int main()
{
FILE *f=fopen("energii.in","rt");
FILE *g=fopen("energii.out","wt");
fscanf(f,"%d%d", &G, &W);
for(int i = 1; i <= G; ++i)
fscanf(f,"%d%d", &E[i], &C[i]);
for(int i = 0; i < G; i++)
for(int j = 1; j <= W; j++)
D[i][j] = 10001;
for(int i = 1; i <= G; ++i)
for(int j = 0; j <= W; ++j)
{
D[i][j] = D[i-1][j];
if(E[i] <= j)
D[i][j] = min(D[i][j], D[i-1][j - E[i]] + C[i]);
else D[i][j]=min(D[i][j],C[i]);
}
if(D[G][W] != 10001)
fprintf(g,"%d\n", D[G][W]);
else fprintf(g,"-1");
return 0;
}