D - 今年暑假不AC

2018俄罗斯世界杯要来了,球迷狂欢的日子也快到了,估计有很多ACMER也会观看这场盛宴。 
作为一名球迷,一定希望能看到尽量多的完整的比赛,当然,作为新时代下的优秀的酱菜青年,你一定还会看一些其它的节目,比如新闻联播(永远不要忘记关心国家大事)、致我们单纯的小美好、亲爱的客栈,以及撒贝宁的《开讲啦》等等,假设你已经提前知道了所有的电视节目的转播时间表,你知道怎么安排能看尽量多的完整节目呢?? 
Input本次输入数据包含多个测试实例 
第一行只有一个整数n(n<=100),表示在俄罗斯世界杯期间你想看的节目。 
紧接着是n行数据,每行包括两个数据Ti_s,Ti_e (1<=i<=n),分别表示第i个节目的开始和结束时间,这里保证每个时间都用一个正整数表示。 
n=0表示输入结束,不做处理。 
Output对于每个测试实例,输出能完整看到的节目的个数,每个测试实例的输出占一行。Sample Input
12
1 3
3 4
0 7
3 8
15 19
15 20
10 15
8 18
6 12
5 10
4 14
2 9
0
Sample Output

5


#include <stdio.h>   
  
int main()  
{  
    int n;  
    while(1)  
    {  
        scanf("%d",&n);  
        if(n==0)  
        {  
            break;  
        }  
  
        int i,j,sum=1,a[100],b[100];  
        for(i=0;i<n;i++)  
        {  
            scanf("%d %d",&a[i],&b[i]);  
        }  
  
        int t;  
        for(i=0;i<n-1;i++)  
        {  
            for(j=0;j<n-1-i;j++)  
            {  
                if(b[j]>b[j+1])  
                {  
                    t=a[j];  
                    a[j]=a[j+1];  
                    a[j+1]=t;  
  
                    t=b[j];  
                    b[j]=b[j+1];  
                    b[j+1]=t;  
                }  
            }  
        }  
  
        t=b[0];  
        for(i=0;i<n;i++)  
        {  
            if(a[i]>=t)  
            {  
                sum++;  
                t=b[i];  
            }  
        }  
  
        printf("%d\n",sum);  
    }  
    return 0;  
}  

猜你喜欢

转载自blog.csdn.net/hou_shiyu/article/details/80548796