大学生电影节在北大举办! 这天,在北大各地放了多部电影,给定每部电影的放映时间区间,区间重叠的电影不可能同时看(端点可以重合),问李雷最多可以看多少部电影。
8 3 4 0 7 3 8 15 19 15 20 10 15 8 18 6 12 0
3
#include <iostream>
#include <algorithm>
using namespace std;
struct film
{
int begin;
int end;
};
bool cmp(film a,film b)
{
if(a.end!=b.end)
{
return a.end<b.end; //按结束时间从小往大排序
}
}
int main() {
int num;
film f[105];
while(cin >> num && num != 0)
{
for(int i=0;i<num;i++)
{
cin>>f[i].begin>>f[i].end;//输入数据
}
int t = 1;
sort(f,f+num,cmp);//排序
int current_end = f[0].end;
for(int i=1;i<num;i++)
{
if(f[i].begin>=current_end)
{
current_end = f[i].end;
t++;
}
}
cout<<t<<endl;
}
return 0;
}
原文:https://www.cnblogs.com/SK1997/p/9002232.html