#include "iostream"
#include "algorithm"
#include "cstring"
#include "string"
#include "vector"
using namespace std;
int comp(const pair<int,int> &a, const pair<int,int> &b){
return a.second < b.second;
}
int main(){
vector <pair<int,int> > vec;
int a,b;
int n;
int time = 0;
int count = 0;
while(scanf("%d",&n) != EOF && n!=0){
for (int i = 0; i < n; i++ ){
scanf("%d%d",&a,&b);
vec.push_back(make_pair(a,b));
}
sort(vec.begin(), vec.end(), comp);
for (int i = 0; i < n; i++ ){
if(vec[i].first >= time) {
count++;
time = vec[i].second;
}
}
printf("%d\n",count);
time = 0;
count = 0;
vec.clear();
}
return 0;
}
本题是贪心方法解题,由于一组两个量,就直接使用pair方法使得2个成组访问,同时,由于多组数据输入,一定清空vec和time、count!!,同时,comp的编写也要强行记住。