本题算是贪心中的基础题。
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int N=102; struct time { int s,e; }data[N]; int n; bool cmp(time a,time b) { if(a.e==b.e) return a.s<b.s; return a.e<b.e; } int main() { while(scanf("%d",&n),n!=0) { for(int i=0;i<n;i++) scanf("%d%d",&data[i].s,&data[i].e); sort(data,data+n,cmp); int ans=1,pos=0; for(int i=1;i<n;i++) { if(data[i].s>=data[pos].e) { ans++; pos=i; } } printf("%d\n",ans); } return 0; }
时间: 2024-12-22 13:42:19