70分求助!!
查看原帖
70分求助!!
1343286
Mincraft_Player楼主2025/1/13 22:19
#include<cstdio>
#include<algorithm>
using namespace std;
int n,ans,cnt;
int c[100010],v[100010],f[100010];
struct node{
	int x,y;
	friend bool operator!=(node a,node b){
		return a.x!=b.x||a.y!=b.y;
	}
}a[100010],b[100010];
bool cmp(node a,node b){
	if(a.x!=b.x)return a.x<b.x;
	return a.y<b.y;
}
void solve(){
	sort(a+1,a+n+1,cmp);
	for(int i=1;i<=n;i++)
		if(a[i]!=a[i-1])b[++cnt]=a[i];
	for(int i=1;i<=cnt;i++)
		c[i]=a[i].x,v[i]=a[i].y;
	f[1]=1;
	for(int i=2;i<=cnt;i++){
		int l=lower_bound(c+1,c+i+1,c[i])-c;
		int pos=lower_bound(v+l,v+i,v[i]-n+1)-v;
		f[i]=i-pos+1;
		ans=max(ans,f[i]);
	}
	ans=n-ans;
}
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
		scanf("%d%d",&a[i].x,&a[i].y);
	solve();
	printf("%d",ans);
	return 0;
}
2025/1/13 22:19
加载中...