Pagini recente » Borderou de evaluare (job #2976543) | Cod sursa (job #2501383) | Borderou de evaluare (job #608001) | Cod sursa (job #2501384) | Cod sursa (job #2501370)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int DP[10001];
int main(){
int n,P,i,j,cost,en;
fin>>n>>P;
for(i = 1 ; i <= n; i++){
fin>>en>>cost;
for(j = P; j >= 1; j--){
if(DP[j] != 0){
if(j + en >= P){
if(DP[P] == 0){
DP[P] = DP[j] - cost;
}else{
DP[P] = max(DP[P],DP[j]-cost);
}
}else{
if(DP[j+en] == 0){
DP[j+en] = DP[j] - cost;
}else{
DP[j+en] = max(DP[j+en],DP[j]-cost);
}
}
}
}
if(DP[en] != 0)
DP[en] = max(DP[en],-cost);
else
DP[en] = -cost;
}
if(DP[P] == 0){
fout<<"-1"<<'\n';
}else{
fout<<-DP[P]<<'\n';
}
return 0;
}