#P2075. 安装饮水机.填空题

安装饮水机.填空题

题目描述

为倡导城市低碳生活,市文明办计划举办马拉松比赛,为确保比赛安全,沿途设置了一些观察点。每个观察点派一个观察员驻守。由于天气比较炎热,需要在沿途安装一些饮水机,使得观察员可以去取水喝。由于观察员每移动一个单位的路程,需要耗费一个单位的体力。而每个观察员的体力有限,只能在他体力能支持的范围内去取水喝,要不他就会渴死或累死。

聪明的楠楠也参与了这次比赛的筹备工作。他的任务是设计一个理想的安装饮水机方案,使得安装的饮水机最少,但又保证所有观察员都能取到水喝。

输入格式

输入数据有若干行。

第一行,仅一个整数,表示有 nn ( 0<n10000 \lt n \le 1000 )个观察点。

接下来有 nn 行,每行两个整数 ss (0<s1000000 \lt s \le 100000 )和 ww ( 0<w500000 \lt w \le 50000),其中 ss 表示某个观察点到起点的路程,ww 表示该观察点中驻点观察员的体力。

输出格式

输出最少要安装几台饮水机。

样例

4
6 3
12 2
1 5
14 5
2

样例说明

他可以将饮水机安装在距离起点为 6 和 12 的位置上,这样所有的观察员都能喝到水。方案有多种,只需输出最少需要几台饮水机即可。

完善程序

#include<bits/stdc++.h>
using namespace std;
struct Point
{
	int L,R;
}x[1000];
填空(1) cmp(填空(2) i,填空(2) j)
{
	return 填空(3);
}
int main()
{
	int n,s,w;
	scanf("%d",&n);
	for(int i=0;i<n;i++)
	{
		scanf("%d %d",&s,&w);
		x[i].L = 填空(4);
		x[i].R = 填空(5);
	}

	sort(填空(6),填空(7),cmp);

	int p=0,ans=0;
	for(int i=0;i<n;i++)
	{
		if(填空(8))
		{
			p = x[i].R;
			ans++;
		}
	}
	
	printf("%d",ans);
	return 0;
}

填空(1):{{ input(1) }}

填空(2):{{ input(2) }}

填空(3):{{ input(3) }}

填空(4):{{ input(4) }}

填空(5):{{ input(5) }}

填空(6):{{ input(6) }}

填空(7):{{ input(7) }}

填空(8):{{ input(8) }}