posts - 36,  comments - 3,  trackbacks - 0

输入数据包含多个测试实例,每个测试实例的第一行只有一个整数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 n1;
 int i,j,temp;
 scanf("%d",&n1);
 struct N{
  int s;
  int f;
 }n[102],t;
 while(n1!=0)
 {
  for(i=1;i<=n1;i++)
  {
   scanf("%d",&n[i].s);
   scanf("%d",&n[i].f);
  }
  for(i=1;i<=n1;i++)
  {
   for(j=n1;j>i;j--)
   {
    if(n[i].s>n[j].s)
    {
     t=n[i];
     n[i]=n[j];
     n[j]=t;
     if(n[i].f>n[i].f)
     {
      temp=n[i].f;
      n[i].f=n[j].f;
      n[j].f=temp;
     }
    }
    
   }
  }
  // for(i=1;i<=n1;i++)
   // printf("%d %d\n",n[i].s,n[i].f);
 int c=1,k=n1,j=0;
 int s=0;
 while(k)
 {
  j=k;c=1;
  for(i=n1-1;i>=1;i--)//只能从下到上;
  {
     if(n[i].f<=n[j].s)
   { j=i;
    c++;
   }
  }
   if(s<c)
   s=c;
   k--;
 }
 printf("%d\n",s);
 scanf("%d",&n1);
 }
 return 0;
}
posted on 2012-07-14 10:01 天YU地___PS,代码人生 阅读(558) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航:
 
<2012年7月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

 一定要好好学习,天天向上!

常用链接

留言簿

随笔分类(8)

随笔档案(35)

文章分类

文章档案(1)

搜索

  •  

最新评论

阅读排行榜

评论排行榜