Pagini recente » Cod sursa (job #1315099) | Cod sursa (job #1365299) | Cod sursa (job #930023) | Cod sursa (job #1368961) | Cod sursa (job #1429310)
/*
* main.cpp
*
* Created on: May 5, 2015
* Author: Vlad Nazdravan
*/
#include <cstdio>
#define max(a,b) a>b?(a):(b)
#define min(a,b) a<b?(a):(b)
using namespace std;
const int gmax = 10000;
int d[gmax];
int main() {
freopen("energii.in", "r", stdin);
freopen("energii.out", "w", stdout);
int n, gm, dr = 0, gi, pi;
scanf("%d%d", &n, &gm);
for (register int i = 1; i <= gmax; ++i) {
d[i] = -1;
}
for (register int i = 1; i <= n; ++i) {
scanf("%d%d", &pi, &gi);
for (register int j = dr; j >= 0; --j) {
if (d[j] != -1 && j + gi <= gmax && d[j + gi] < d[j] + pi) {
d[j + gi] = d[j] + pi;
dr = max(dr, j + gi);
}
}
}
int myn = (1ll << 31) - 1;
for (register int i = 1; i <= gmax; ++i) {
if (d[i] >= gm) {
myn = min(myn, i);
}
}
if (myn==((1ll<<31)-1)){
printf("-1");
return 0;
}
printf("%d", myn);
return 0;
}