Untitled
unknown
plain_text
a year ago
1.2 kB
9
Indexable
// y.ha
#include <bits/stdc++.h>
#define cook '\n'
#define maxn 50005
using namespace std;
int n,d,L[maxn],R[maxn],save[maxn],a[maxn];
pair<int,int> c[maxn];
bool check(int x,int y) {
return abs(c[x].first - c[y].first) <= d ;
}
int solve() {
save[0] = 0;
int top = 0;
for ( int i = 1; i <= n; i++ ) {
while ( 2*a[i] > a[save[top]] ) top--;
if ( check(i,save[top]) && top!= 0 ) L[i] = 1 ;
save[++top] = i;
}
top = 0 ;
save[0] = n+1;
for ( int i = n; i >= 1; i-- ) {
while ( 2*a[i] > a[save[top]] ) top--;
if ( check(i,save[top]) && top!= 0 ) R[i] = 1;
save[++top] = i ;
}
int dem = 0 ;
for ( int i = 1; i<=n; i++ )
if ( L[i] + R[i] == 2 ) dem++ ;
return dem ;
}
int main()
{
ios_base::sync_with_stdio(0) ;
cin.tie(nullptr) ;
if(fopen("bai1.inp","r"))
freopen("bai1.inp","r",stdin) ;
cin >> n >> d;
for ( int i = 1; i <= n; i++ ) cin >> c[i].first >> c[i].second ;
a[0] = a[n+1] = 2e9 + 5;
for ( int i = 1; i <= n; i++ ) a[i] = c[i].second ;
cout << solve() ;
}
Editor is loading...
Leave a Comment