Pagini recente » Cod sursa (job #2280119) | Cod sursa (job #2164430) | Cod sursa (job #1867116) | Cod sursa (job #1138624) | Cod sursa (job #1283236)
#include <iostream>
#include <fstream>
//#include <algorithm>
using namespace std;
ifstream f("energii.in");
ofstream out("energii.out");
int g,w, eg[1002], cg[1002];
int a[1002][5002];
int infinit = 999999999;
int suma;
void Citire()
{
int i;
f>>g>>w;
for(i=1;i<=g;i++)
{
f>>eg[i]>>cg[i];
suma+=eg[i];
}
}
void Solve()
{
int i,j;
int aux,x,y;
for(i=1;i<=10001;i++)
a[1][i] = infinit;
a[1][eg[1]]= cg[1];
for(i=2;i<=g;i++)
for(j=1;j<=10000;j++)
{
x=infinit;
y=infinit;
aux = j - eg[i];
if(aux >= 0)
x = a[i-1][aux] + cg[i];
y=a[i-1][j];
a[i][j] = min(x,y);
}
}
int main()
{
Citire();
if(suma < w ) out<<"-1\n";
else
{
Solve();
out<<a[g][w]<<"\n";
}
f.close();
out.close();
return 0;
}