Pagini recente » Cod sursa (job #1209148) | Cod sursa (job #3148732) | Cod sursa (job #645639) | Cod sursa (job #286092) | Cod sursa (job #2444809)
#include <iostream>
#define GMAX 1001
#define WMAX 10001
#define INFINIT 1000000000
using namespace std;
struct gen {
int e ;
int cst ;
};
gen v [ GMAX + 1 ] ;
int gr [ WMAX + 1 ] ;
int main() {
FILE *fin, *fout ;
fin = fopen ("energii.in", "r" ) ;
fout = fopen ("energii.out", "w" ) ;
int g, w, i, j, poz, minim ;
fscanf (fin, "%d%d", &g, &w ) ;
for (i = 0 ; i <= WMAX ; i++ )
gr[i] = INFINIT ;
for (i = 1 ; i <= g ; i++ )
fscanf (fin, "%d%d", &v[i].e, &v[i].cst ) ;
poz = 0 ;
minim = INFINIT ;
for (i = 1 ; i <= g ; i++ ) {
for (j = WMAX ; j >= v[i].e ; j-- ) {
gr[j] = min (gr[j], gr[j-v[i].e] + v[i].cst ) ;
if (j >= w && gr[j] < gr[poz] )
poz = j ;
}
if (gr[v[i].e] > v[i].cst )
gr[v[i].e] = v[i].cst ;
}
if (poz == 0 )
fprintf (fout, "-1" ) ;
else {
fprintf (fout, "%d", gr[poz] ) ;
}
return 0;
}