双指针60分 2,8,9,10错了。求调
查看原帖
双指针60分 2,8,9,10错了。求调
1285821
zhangfengshuo159楼主2025/7/29 14:36
#include<bits/stdc++.h>
using namespace std;
struct node{
    int a,b;
}o[100005];
int cmp1(node x,node y){
    if(x.a!=y.a) return x.a<y.a;
    else return x.b<y.b;
}
int cmp2(node x,node y){
    if(x.a==y.a)
    return x.b==y.b;
    else return 0;
}
int main(){
	int n;
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>o[i].a>>o[i].b;
    sort(o+1,o+n+1,cmp1); 
    int n0=unique(o+1,o+n+1,cmp2)-o-1;
    int l,len=0;
    for(int i=1;i<=n0;i++){
    	bool flag=0;
        int c=o[i].a,j=i;
        while(o[i].a==o[j].a&&j<=n0){
        	l=j-i+1;
        	len=max(len,l);
        	if(o[j].b-o[i].b<n)
        		j++;
        	else
        		i++;
    	}
        i=j-1;
    }
    cout<<n-len;
    return 0;
}
2025/7/29 14:36
加载中...