rt,救救孩子吧…
#include<bits/stdc++.h>
#define int long long
#define pii pair<int,int>
using namespace std;
const int N=1e5+5;
int n,m,tot;
int dp[N];
map<pii,int>f;
struct node{
int l,r;
}a[N];
struct inter{
int l,r,val;
}t[N];
int Find(int i){
int lt=-1,rt=i,val=t[i].l;
while(lt+1<rt){
int mid=(lt+rt)/2;
if(t[mid].r<val)
lt=mid;
else
rt=mid;
}
return lt;
}
signed main(){
cin>>n;
for(int i=1;i<=n;i++){
int x,y;
cin>>x>>y;
if(x+1>n-y)
continue;
a[++m]={x+1,n-y};
}
for(int i=1;i<=m;i++)
f[{a[i].l,a[i].r}]++;
for(auto&it:f)
t[++tot]={it.first.first,it.first.second,min(it.second,it.first.second-it.first.first+1)};
for(int i=1;i<=tot;i++){
int pre=Find(i);
dp[i]=max(dp[i],dp[pre]+t[i].val);
}
cout<<n-dp[tot];
return 0;
}