#include<iostream> using namespace std; int n,b[1001],e[1001]; void solve() { int ans=0; int t = -1; for(int i=1;i<=n;++i) //如果当前活动与之前最后结束的活动不冲突,就接受当前活动。 if(b[i]>=t) { ++ans; t=e[i]; } cout<<ans<<endl; } int main() { int i,j,t; cin>>n; for(i=1;i<=n;i++) cin>>b[i]>>e[i]; //按照结束时间对2个数组同时排序 for(i = 1;i < n;i++){ for(j = 1;j <= n - i;j++){ if(e[j] > e[j+1]){ swap(e[j],e[j+1]); swap(b[j],b[j+1]); } } } solve(); return 0; } /************************************************************** Problem: 1372 User: admin Language: C++ Result: Accepted Time:8 ms Memory:2080 kb ****************************************************************/