Cod sursa(job #2180998)
Utilizator | Data | 21 martie 2018 13:04:26 | |
---|---|---|---|
Problema | Energii | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.43 kb |
#include<bits/stdc++.h>
using namespace std;
ifstream fin("mmm.in");
ofstream fout("mmm.out");
int n,w,A[1010],B[1010],C[5010];
int main(){
fin>>n>>w;
for(int i=1; i<=n; i++) fin>>A[i]>>B[i];
for(int i=1; i<=w; i++) C[i]=100000;
for(int i=1;i<=n; i++){
for(int j=w; j>=1; j--){
if(j<A[i]) C[j]=min(C[j],B[i]);
else C[j]=min(C[j],C[j-A[i]]+B[i]);
}
}
if(C[w]==100000) fout<<-1;
else fout<<C[w];
}