//贪心 #include <bits/stdc++.h> #define maxn 0x3f3f3f3f using namespace std; typedef long long ll; priority_queue<int, vector<int >, less<int > > q; //建大根堆 struct jian { ll tt,d;//定义耗时和截止时间 }t[200000]; bool cmp(jian a,jian b) // 假先修截止时间早的 { if(a.d!=b.d) return a.d<b.d; else return a.tt<b.tt; } int main() { ios::sync_with_stdio(false); cin.tie(0);cout.tie(0); int n; ll sum=0; // 定义总耗时 cin>>n; for(int i=1;i<=n;i++) cin>>t[i].tt>>t[i].d; sort(t+1,t+1+n,cmp); for(int i=1;i<=n;i++) { sum+=t[i].tt; q.push(t[i].tt); if( sum >t[i].d) // 如果时间不够了,去掉耗时最大的 { sum-=q.top(); q.pop(); } } cout<<q.size()<<endl; }