Pagini recente » Cod sursa (job #1480971) | Cod sursa (job #1132248) | Cod sursa (job #1358077) | Monitorul de evaluare | Cod sursa (job #1249670)
//#include <cstdio>
#include <fstream>
#include <cstring>
#include <algorithm>
#define M 10000002
#define INF 0x3f3f3f3f
using namespace std;
//FILE * is = fopen("energii.in", "r");
//FILE * os = fopen("energii.in", "w");
ifstream is("energii.in");
ofstream os("energii.out");
int n, w, e, c, s;
int mn = INF, mx;
int d[M]; // d[i] = costul minim pt cantitatea i de energie
int main()
{
//fscanf(is, "%d%d", &n, &w );
is >> n >> w;
memset(d, 63, sizeof(d));
d[0] = 0;
for ( int i = 1; i <= n; ++i )
{
//fscanf(is, "%d%d", &e, &c );
is >> e >> c;
for ( int j = mx; j >= 0; --j )
if ( d[j+e] > d[j] + c )
{
d[j+e] = d[j] + c;
mx = max(mx, j+e);
}
}
for ( int i = w; i < mx; ++i )
mn = min(mn, d[i] );
//fprintf(os, "%d", mn );
//fclose(is);
//fclose(os);
os << mn;
is.close();
os.close();
return 0;
}