小罗的虚拟内存大作战

时间限制: 1000 ms 内存限制: 65536 kb
总通过人数: 0 总提交人数: 0

题目描述

小罗又想要搞大新闻了,于是他准备了一个2T的硬盘打算做成虚拟内存,然后使用malloc分配一大堆空间。

但是他的硬盘上还有其他的文件,这些文件所处的位置是不能被分配成内存的。所以这2T的虚拟内存并不是连续的,而malloc需要连续内存来分配。小罗想要知道他最多能malloc多少次,请你估计一下吧。

输入

第一行为:三个数n、mallocSize、volume,分别表示文件的数量、每次malloc所分配的内存,和磁盘容量。

接下来n行,每行2个整数start,end,表示每个文件占用的起始位置和结束位置,包括端点。每个文件都是连续的。

$0 < n \leq 100$
$0 < mallocSize \leq 1000$
$0 < volume \leq 1000$
$0 \leq start <= end < volume$

输出

输出一行,最多能够malloc多少次。

输入样例

3 5 20
0 0
4 4
10 12

输出样例

2

样例解释

内存状态如下所示(0为空闲,1为占用):

1 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0

其中能分配2个malloc空间(5个内存),分配在地址5~9,13~17。

HINT

1.文件可能是互相重叠的

2.输入时不是按照从左到右的顺序的(可能是乱序的)

相关推荐