Pagini recente » Cod sursa (job #1700808) | Cod sursa (job #596281) | Cod sursa (job #1920791) | Cod sursa (job #1648374) | Cod sursa (job #3155896)
#include <fstream>
#define M 10000000
using namespace std;
ifstream cin ("energii.in");
ofstream cout ("energii.out");
unsigned int w, n, g[M], wmax;
pair <unsigned int,unsigned int> v[1005];
int main()
{
cin >> n >> w;
for (int i = 1; i <= n; i++)
cin >> v[i].first >> v[i].second;
for (int i = 1; i <= n; i++)
{
wmax += v[i].first;
for(int j = wmax; j >= 1; j--)
if (g[j])
{
if(g[j+v[i].first]==0)
g[j+v[i].first]=g[j]+v[i].second;
else
g[j+v[i].first] = min(g[j]+v[i].second, g[j+v[i].first]);
}
if(g[v[i].first] == 0)
g[v[i].first]=v[i].second;
else
g[v[i].first]=min(g[v[i].first],v[i].second);
}
if(g[w])
cout << g[w];
return 0;
}