Pagini recente » Cod sursa (job #999321) | Cod sursa (job #193913) | Cod sursa (job #2314684) | Cod sursa (job #2579254) | Cod sursa (job #677739)
Cod sursa(job #677739)
#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;
#define maxN 5005
#define INF 0x3f3f3f3f
int N , G , c[maxN] , p[maxN] , a[maxN][maxN];
int main ()
{
freopen ("energii.in" , "r" , stdin);
freopen ("energii.out" , "w" , stdout);
scanf ("%d %d" , &N , &G);
for (int i = 1 ; i <= N ; ++i)
scanf ("%d %d" , &p[i] , &c[i]);
for (int i = 1 ; i <= N ; ++i)
for (int j = G ; j >= 1 ; --j)
{
a[i][j] = a[i - 1][j];
if (p[i] >= j)
a[i][j] = max (a[i][j] , a[i - 1][j + p[i]] + c[i]);
}
int minim = INF;
for (int i = 1 ; i <= G ; ++i)
{
//cout << a[N][i] << " ";
if (a[N][i] >= G && a[N][i] < minim)
minim = a[N][i];
}
if (minim == INF)
{
printf ("-1");
return 0;
}
printf ("%d" , minim);
return 0;
}