/*
输入数据包含多个测试实例,每个测试实例的第一行只有一个整数n(n<=100),
表示你喜欢看的节目的总数,然后是n行数据,每行包括两个数据Ti_s,Ti_e (1<=i<=n),
分别表示第i个节目的开始和结束时间,为了简化问题,每个时间都用一个正整数表示
。n=0表示输入结束,不做处理。
*/
求观看完整节目的最大个数
#include<stdio.h> typedef struct Node{ int start; int end; }time[110]; void main() { int n; while(scanf("%d",&n)==1 && n<=100 && n>0) { int i,j,k; time kk; for(i=0;i<n;i++) scanf("%d%d",&kk[i].start,&kk[i].end); for(i=0;i<n;i++) for(j=i+1;j<n;j++) if(kk[i].end>kk[j].end) { int temp=kk[i].start; kk[i].start=kk[j].start; kk[j].start=temp; temp=kk[i].end; kk[i].end=kk[j].end; kk[j].end=temp; } int s=0; int count=0; for(k=0;k<n;k++) { if(kk[k].start>=s) { count++; s=kk[k].end; } } printf("%d\n",count); } }
时间: 2024-10-05 22:19:28