0pts,求调
查看原帖
0pts,求调
307313
_Speechless楼主2023/8/7 21:52
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;  
int n,a[N],b[N],vis[N],cnt[N];
#define int long long
struct node{
    int a,b;
}x[N],id[N];
bool cmp1(node a,node b){
    return a.a<b.a;
}
bool cmp(node x,node y){
    if(x.a==y.a){
        return x.b<y.b;
    }else return x.a<y.a;
}
signed main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>x[i].a>>x[i].b;
    }
    sort(x+1,x+1+n,cmp1);
    for(int i=1;i<=n;i++){
        id[i].a=i;
        if(x[i].a==x[i-1].a){
            id[i]=id[i-1];
        }
        id[i].b=x[i].b;
    }
    for(int i=1;i<=n;i++){
        cnt[id[i].a]++;
    }
    sort(id+1,id+1+n,cmp);
    int ans=0,sum1=0;
    for(int i=1;i<=n;i+=cnt[id[i].a]){
        int sum=1;
        for(int j=i+1;j<=i+cnt[id[i].a]-1;j++){
            if(id[j].b==id[j-1].b){
                continue;
            }
            if(id[j].b-id[j-1].b==1)sum++,ans=max(ans,sum);
            else sum=1;
        }
        ans=max(ans,sum);
    }
    cout<<n-ans<<endl;
    return 0;
}
2023/8/7 21:52
加载中...