1-4 兼容任务 (100分)
设有n个任务,其中每个任务有一个起始时间si和一个结束时间ei,且si<ei,同一时间只能完成一个任务。如果选择了任务i ,则它在时间区间 [si ,ei) 内占用资源。若区间 [si ,ei) 与区间 [sj, ej)不相交,则称任务 i 与任务 j 是相容的。那么,对于给定的任务时间区间,能互相兼容的最大任务个数是多少呢?
输入格式:
第一行一个整数n (1<=n<=1000) ;
接下来n行,每行两个整数si 和 ei。
输出格式:
互相兼容的最大任务个数。
输入样例:
4
1 3
4 6
2 5
1 7
输出样例:
2
代码 :
#include<stdio.h>
int main(void)
{
int n,temp1,temp2,end,s[1000],e[1000];
int sum = 0;
scanf("%d", &n);
for (int i = 0; i < n; i++)
scanf("%d %d", &s[i], &e[i]);
for(int i = 0;i<n-1;i++)
for(int j = i+1;j<n;j++)
if (e[i] > e[j]) {
temp1 = e[i];
temp2 = s[i];
e[i] = e[j];
s[i] = s[j];
e[j] = temp1;
s[j] = temp2;
}
end = 0;
for(int i = 0;i<n;i++)
if (s[i] >= end) {
sum++;
end = e[i];
}
printf("%d", sum);
return 0;
}