acmE看电视

来源:互联网 发布:个人如何成为淘宝卖家 编辑:程序博客网 时间:2024/06/03 00:33

 

思想:对节目结束的时间进行排序,用到sort,之后用前一个节目结束的时间与下一个节目开始的时间进行比较,如果下一个节目开始的时间大于上一个节目结束的时间,则完整的电视节目的个数就加一,如果不大于,就则两个节目时间就冲突了,就再跟下面的节目继续比较。

方法一:

#include<iostream>using namespace std;struct any{int a,b;};int main(){    any c[105],v;int d;while(cin>>d&&d!=0){int m=0,n,e=1;for(int k=0;k<d;k++){cin>>c[k].a>>c[k].b;} for(int i=0; i<d-1; i++)        {           for(int j=i+1; j<d; j++)            {                if(c[i].b>c[j].b)                {                    v=c[i];                    c[i]=c[j];                    c[j]=v;                }            }        }n=c[0].b;for(int g=0;g<d;g++){if(n<=c[g].a){e++;n=c[g].b;}}cout<<e<<endl;}return 0;}


方法二:

#include<cstdio>#include<iostream>#include<algorithm>using namespace std;struct info{    int a;    int b;}unit[103];int cmd(info x,info y){    return x.b<y.b;}int main(){    int n,i,j,k;    while(scanf("%d",&n)!=EOF)    {     if(n==0)     break;     for(i=0;i<n;i++)     {         scanf("%d%d",&unit[i].a,&unit[i].b);     }     sort(unit,unit+n,cmd);     j=0;     k=0;     for(i=1;i<n;i++)     {         if(unit[i].a>=unit[j].b)  {             k++;             j=i;         }     }     printf("%d\n",k+1);    }    return 0;}


 

 

 

原创粉丝点击