Cod sursa(job #2339890)
| Utilizator | Data | 9 februarie 2019 15:07:45 | |
|---|---|---|---|
| Problema | Energii | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.67 kb |
#include <fstream>
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int n,nev,e[5001],c[5001],optim[10001],s;
const int inf=1<<30;
int main(){
int i,j;
f>>n>>nev;
for(i=1;i<=n;i++){
f>>e[i]>>c[i];
s+=e[i];
}
if(s<nev){
g<<-1;
return 0;
}
for(i=0; i<=nev; i++)
optim[i]=inf;
for(i=1; i<=n; i++)
for(j=nev; j>=1; j--)
if(j-e[i]<=0)
optim[j]=min(optim[j],c[i]);
else
optim[j]=min(optim[j], optim[j-e[i]]+c[i]);
if(optim[nev]==inf)
g<<-1;
else
g<<optim[nev];
return 0;
}
