大学生电影节在北大举办! 这天,在北大各地放了多部电影,给定每部电影的放映时间区间,区间重叠的电影不可能同时看(端点可以重合),问李雷最多可以看多少部电影。
输入多组数据。每组数据开头是n(n<=100),表示共n场电影。接下来n行,每行两个整数(0到1000之间),表示一场电影的放映区间
n=0则数据结束输出对每组数据输出最多能看几部电影样例输入
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 note{
int begin,end;
}a[100];
int cmp(note a,note b)
{
return a.end<b.end;
}
int main()
{
freopen("C:\\Users\\23535\\Desktop\\in.txt","r",stdin); //输入重定向,输入数据将从D盘根目录下的in.txt文件中读取
freopen("C:\\Users\\23535\\Desktop\\out.txt","w",stdout); //输出重定向,输出数据将保存在D盘根目录下的out.txt文件中
int n;
while(cin>>n&&n!=0)
{
for(int i=0;i<n;i++)
{
cin>>a[i].begin>>a[i].end;
}
sort(a,a+n,cmp);
int shu=1;
int dead=a[0].end;
for(int i=1;i<n;i++)
{
if(a[i].begin>=dead)
{
dead=a[i].end;
shu++;
}
}
cout<<shu<<endl;
}
fclose(stdin);//关闭重定向输入
fclose(stdout);//关闭重定向输出
return 0;
}