Pagini recente » Cod sursa (job #546999) | Cod sursa (job #2499904) | Cod sursa (job #3237522) | Cod sursa (job #2651908) | Cod sursa (job #2411393)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
const int inf = 1<<30;
int v[10006];
int auxv[10006];
int gc[1005];
int ge[1005];
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;
}