观察式子
由于对于两个点,总有一个大一点作为 ,一个小一点作为
所以暂时去掉绝对值变成
也就是满足这个关系 和 才有边
#include <bits/stdc++.h>
using namespace std;
const int maxn=2e5+10;
int n;
struct p{
int x,w,he,cha;
bool operator < (const p&tmp ) const{
if( he==tmp.he ) return cha<tmp.cha;
return he<tmp.he;
}
}a[maxn];
int main()
{
cin >> n;
for(int i=1;i<=n;i++)
{
cin >> a[i].x >> a[i].w;
a[i].he=a[i].x+a[i].w;
a[i].cha=a[i].x-a[i].w;
}
sort(a+1,a+1+n);//x小的在前面
p last=a[1];
int ans=1;
for(int i=2;i<=n;i++)
{
if( a[i].cha>=last.he )
{
ans++;
last=a[i];
}
}
cout << ans;
}