Pagini recente » Cod sursa (job #2227412) | Cod sursa (job #1692260) | Cod sursa (job #2938668) | Cod sursa (job #1184667) | Cod sursa (job #566971)
Cod sursa(job #566971)
#include <cstdio>
const int INF = 99999999;
int C[1001][1001], EG[1001], CG[1001];
int main()
{
FILE *f = fopen("energii.in", "r");
FILE *g = fopen("energii.out", "w");
int n, W;
fscanf(f, "%d %d", &n, &W);
for (int i = 1 ; i <= n ; ++i)
{
fscanf(f, "%d %d", &EG[i], &CG[i]);
}
C[0][0] = 0;
for (int i = 1 ; i <= W ; ++i)
C[0][i] = INF;
for (int i = 1 ; i <= n ; ++i)
{
for (int j = 1 ; j <= W ; ++j)
{
C[i][j] = C[i - 1][j];
if (j < EG[i])
{
if (CG[i] < C[i][j])
C[i][j] = CG[i];
}
else if (C[i - 1][j - EG[i]] != INF && (C[i - 1][j - EG[i]] + CG[i] < C[i][j]))
C[i][j] = C[i - 1][j - EG[i]] + CG[i];
}
}
if (C[n][W] != INF)
fprintf(g, "%d\n", C[n][W]);
else
fprintf(g,"-1\n");
return 0;
}