Pagini recente » Cod sursa (job #1871513) | Cod sursa (job #2892404) | Cod sursa (job #1873980) | Cod sursa (job #1882715) | Cod sursa (job #2411397)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
const int inf = 1<<30;
int v[1000006];
int auxv[1000006];
int gc[10005];
int ge[10005];
int main()
{
int n,m,i,j,sum = 0,minim = inf;
fin>>n>>m;
for(i = 1; i <= n; i++){
fin>>gc[i]>>ge[i];
sum+=gc[i];
}
if(sum < m){
fout<<"-1"<<endl;
return 0;
}
for(i = 1; i <= sum; i++){
v[i] = auxv[i] = inf;
}
for(i = 1; i <= n; i++){
for(j = 1; j <= sum; j++){
if(j < gc[i]){
auxv[j] = auxv[j];
}else{
auxv[j] = min(v[j],v[j-gc[i]] + ge[i]);
}
}
for(j = 1; j <= sum; j++){
v[j] = auxv[j];
}
}
for(i = m; i <= sum; i++){
minim = min(minim,v[i]);
}
fout<<minim<<endl;
return 0;
}