H. 找点

来源:互联网 发布:命令与征服5知乎 编辑:程序博客网 时间:2024/06/04 23:34

上数学课时,老师给了LYH一些闭区间,让他取尽量少的点,使得每个闭区间内至少有一个点。但是这几天LYH太忙了,你们帮帮他吗?

Input

多组测试数据。
每组数据先输入一个N,表示有N个闭区间(N≤100)。
接下来N行,每行输入两个数a,b(0≤a≤b≤100),表示区间的两个端点。

Output

输出一个整数,表示最少需要找几个点。

Sample Input

41 52 41 42 331 23 45 612 2

Sample Output

131

#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;struct m{    int bg;    int ed;} a[10010];bool cmp(m x,m y){    return x.bg<y.bg;}int main(){    int t;    while(~scanf("%d",&t))    {        for(int i=0; i<t; i++)            scanf("%d%d",&a[i].bg,&a[i].ed);        sort(a,a+t,cmp);        int u=1;        for(int i=0; i<t-1; i++)            if(a[i].ed<a[i+1].bg)            {                 u++;            }        else        {            a[i+1].ed=min(a[i].ed,a[i+1].ed);        }        printf("%d\n",u);    }    return 0;}

0 0
原创粉丝点击