Pagini recente » Cod sursa (job #797186) | Cod sursa (job #897680) | Cod sursa (job #2976591) | Cod sursa (job #2004942) | Cod sursa (job #2227714)
#include <fstream>
using namespace std;
pair <int, int> A[1005];
int n, E, c, e, i, j, Min=2000000000, suma;
int v[100005];///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>>A[i].first>>A[i].second;
suma+=A[i].first;
}
if (suma<E) {
fout<<-1;
return 0;
}
for (i=1;i<=suma;i++) {
v[i]=2000000000;
}
for (i=1;i<=suma;i++) {
e=A[i].first;
c=A[i].second;
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;
}