ZOJ 3508 The War 贪心

贪心

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4351

对b从小到大排序就可以了

#pragma warning(disable :4786) #include<iostream> using namespace std; #include<algorithm> #include<set> struct node { int a,b; }arm[2510]; bool cmp(const node c,const node d) { return c.b<d.b; } int main() { int n,m; multiset<int> s; multiset<int>::iterator it; while(cin>>n>>m) { int i,ans=0,d; for(i=0;i<n;i++) { cin>>arm[i].a>>arm[i].b; } sort(arm,arm+n,cmp); s.clear(); for(i=0;i<m;i++) { cin>>d; s.insert(d);//multiset自动排序 } for(i=0;i<n;i++) { it=s.lower_bound(arm[i].a);//*it>=x //upper_bound()----*it>x if(it!=s.end() && *it<=arm[i].b) { ans++; s.erase(it); } } cout<<ans<<endl; } return 0; }

你可能感兴趣的:(ZOJ 3508 The War 贪心)