C头奶牛,L种防晒液,每头都要涂防晒液,每头牛都有一个极限值,要让他保持在极限值内,每种防晒液两个值,第一个要小于牛的极限就能涂,第二个代表这种防晒液的数量。
#include<iostream>
#include<algorithm>
#include<cstring>
#include<vector>
#include<queue>
using namespace std;
typedef pair<int,int> P;
priority_queue<int,vector<int>,greater<int> >q;
P cow[3000],bot[3000];
int main()
{
int n,m;
cin>>n>>m;
for(int i=0;i<n;i++)
cin>>cow[i].first>>cow[i].second;
for(int i=0;i<m;i++)
cin>>bot[i].first>>bot[i].second;
sort(cow,cow+n);
sort(bot,bot+m);
int j=0;
int ans=0;
for(int i=0;i<m;i++)
{
while(j<n&&cow[j].first<=bot[i].first)
{
q.push(cow[j].second);
j++;
}
while(!q.empty()&&bot[i].second)
{
int x=q.top();
q.pop();
if(x<bot[i].first)
continue;
ans++;
bot[i].second--;
}
}
cout<<ans<<endl;
return 0;
}