Pagini recente » Cod sursa (job #221053) | Cod sursa (job #1723085) | Cod sursa (job #1518344) | Cod sursa (job #2458155) | Cod sursa (job #2227725)
#include <fstream>
using namespace std;
int w1[10005], w2[10005];
int n, E, c, e, i, j, Min=2000000000, suma;
int v[10005];///v[i]=costul minim al unei submultimi de generatoare ce produc energia i
int main () {
ifstream fin ("energii.in");
ofstream fout ("energii.out");
fin>>n>>E;
for (i=1;i<=n;i++) {
fin>>w1[i]>>w2[i];
suma+=w1[i];
}
if (suma<E) {
fout<<-1;
return 0;
}
for (i=1;i<=suma;i++) {
v[i]=2000000000;
}
for (i=1;i<=suma;i++) {
e=w1[i];
c=w2[i];
for (j=suma-e;j>=0;j--) {
if (v[j]!=2000000000) {
if (v[j+e]>v[j]+c)
v[j+e]=v[j]+c;
}
}
}
for (i=E;i<=suma;i++) {
Min=min(Min, v[i]);
}
fout<<Min;
return 0;
}