Pagini recente » Cod sursa (job #1609183) | Cod sursa (job #1584434) | Cod sursa (job #2365046) | Cod sursa (job #2631854) | Cod sursa (job #2228052)
#include <fstream>
using namespace std;
struct generatoare{
int first,second;
} A[1005];;
int n, E, c, e, i, j, Min=200000000, suma;
int v[5002];
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<=E;i++) {
v[i]=200000000;
}
for (i=1;i<=n;i++) {
e=A[i].first;
c=A[i].second;
for (j=E;j>=0;j--) {
if (v[j]!=200000000) {
if(j+e<=E) {
if (v[j+e]>v[j]+c)
v[j+e]=v[j]+c;
}
else
if (v[E]>v[j]+c)
v[E]=v[j]+c;
}
}
}
if(v[E]!=200000000)
fout<<v[E];
else
fout<<-1;
return 0;
}