Cod sursa(job #1874262)
| Utilizator | Data | 9 februarie 2017 20:37:04 | |
|---|---|---|---|
| Problema | Energii | Scor | 60 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.51 kb |
#include<bits/stdc++.h>
#define N 5050
using namespace std;
int e[1020], g, dp[N], c[1020], i, w, j, s=0;
int main(){
ifstream fin("energii.in");
ofstream fout("energii.out");
fin>>g>>w;
for(i=1;i<=g;i++) {
fin>>e[i]>>c[i];
s+=c[i];
}
if(w>s){
fout<<-1;
return 0;
}
for(i=0;i<=w;i++) dp[i]=999999;
for(i=1;i<=g;i++)
for(j=w; j>=1;j--){
if (e[i]<j) dp[j]=min(dp[j-e[i]]+c[i], dp[j]);
else dp[j] = min(dp[j], c[i]);
}
fout<<dp[w];
return 0;
}
