Cod sursa(job #2212787)
Utilizator | Data | 14 iunie 2018 20:09:06 | |
---|---|---|---|
Problema | Energii | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.59 kb |
#include <fstream>
#include <climits>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int i,j,D[10001],E,p[10001],c[10001],n,minim,w;
int main(){
fin>>n>>E;
for(i=1;i<=n;i++)
fin>>p[i]>>c[i];
for(i=1;i<=E;i++)
D[i]=INT_MAX;
for(i=1;i<=n;i++)
for(j=E;j>=0;j--)
if(D[j]!=INT_MAX){
w=j+p[i];
if(w>E)
w=E;
D[w]=min(D[w],D[j]+c[i]);
}
if(D[E]==INT_MAX)
fout<<-1;
else
fout<<D[E];
return 0;
}