1-4 兼容任务

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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值