#include <iostream> #include <cstdio> #include <queue> #include <utility> #include <vector> #include <algorithm> using namespace std; typedef long long LL; typedef pair<LL,LL> pii; int main () { int T; scanf("%d",&T); while (T--) { int n; scanf("%d",&n); vector<pii> v; for (int i=0;n>i;i++) { int a,b; scanf("%d %d",&a,&b); v.push_back({b,a}); } sort(v.begin(),v.end()); int sum=0; priority_queue<LL> pq; for (pii p:v) { sum += p.second; pq.push(p.second); while (sum > p.first) { sum -= pq.top(); pq.pop(); } } printf("%d\n",pq.size()); if (T) puts(""); } }
2017年10月22日 星期日
(UVa) 1153 - Keep the Customer Satisfied [Greedy]
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=845&page=show_problem&problem=3594
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言