Pagini recente » Cod sursa (job #2047466) | Cod sursa (job #532940) | Cod sursa (job #208040) | Cod sursa (job #786589) | Cod sursa (job #2006707)
#include <fstream>
#include <iostream>
#include <vector>
#include <iomanip>
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
int G , W;
int min(int a ,int b)
{
return a <= b ? a : b;
}
int main()
{
const int Max = 10001;
in >> G >> W;
vector<pair<int,int> > v;
pair<int,int> aux;
int sol[G+10][W+10];
for(int i = 0;i < G;i++)
{
in >> aux.first >> aux.second;
v.push_back(aux);
}
for(int i = 0; i <= G ;i++)
{
for(int j = 0; j <= W;j++)
sol[i][j] = Max;
}
for(int i = 1; i <= G; i++)
{
for(int j = 1; j <= W ;j++)
{
if(v[i-1].first >= j)
sol[i][j] = min(v[i-1].second,sol[i-1][j]);
else
sol[i][j] = min(v[i-1].second + sol[i-1][j-v[i-1].first],sol[i-1][j]);
}
}
if(sol[G][W] >= Max)
out<<'-1'<<'\n';
else
out<<sol[G][W];
return 0;
}