Pagini recente » Cod sursa (job #1997659) | Cod sursa (job #1610736) | Cod sursa (job #145046) | Cod sursa (job #820631) | Cod sursa (job #1853256)
#include <fstream>
#define mini(a, b) ( (a)<(b) ? (a) : (b) )
using namespace std;
ifstream cin ("energii.in");
ofstream cout ("energii.out");
const int MAX = 5e4 + 5, LIM = 1e4 + 5, INF = 1e4 + 1;
int n, caut, cost, cg, v[MAX], rez = MAX, poz;
int main()
{
cin>>n>>caut;
for(int i=1; i<=MAX; ++i)
v[i] = INF;
v[0] = 0;
for(int i=1; i<=n; ++i)
{
cin>>cg>>cost;
for(int j=caut; j>=0; --j)
if(v[j] != INF and v[j+cg] > v[j] + cost){
v[j+cg] = v[j] + cost;
if(j+cg >= caut){
if(rez > v[j+cg]){
rez = v[j+cg];
poz = j + cg;
}
//rez = mini(rez, v[j+cg]);
}
}
}
if(poz<caut){
cout<<-1;
return 0;
}
cout<<rez;
return 0;
}