// UVa 10154 - Weights and Measures
#include <iostream>
#include <vector>
#include <string.h>
#include <algorithm>
#include <limits.h>
using namespace std;
struct Turtle {
int w;
int s;
};
struct comp {
bool operator()(Turtle x, Turtle y) {
return (x.s - x.w) > (y.s - y.w);
}
};
int main() {
vector<Turtle> turtle;
int w, s;
int n = 0;
while (cin >> w >> s) {
Turtle tur = { w, s };
turtle.push_back(tur);
n++;
}
sort(turtle.begin(), turtle.end(), comp());
int T[5608];
T[0] = INT_MAX;
for (int i = 1; i <= n; i++)
T[i] = -1;
for (int j = 0; j < n; j++) {
for (int i = j + 1; i > 0; i--) {
T[i] = max(T[i], min(T[i - 1] - turtle[j].w, turtle[j].s - turtle[j].w));
}
}
int sol;
for (sol = n; sol >= 0 && T[sol] < 0; sol--)
;
cout << sol << endl;
return 0;
}
Tuesday, June 16, 2015
UVa 10154 - Weights and Measures
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment