比赛 26暑假集训模拟赛3 评测结果 AAWWWWWTTTTTTTT
题目名称 Election Queries 最终得分 12
用户昵称 Ruyi 运行时间 26.680 s
代码语言 C++ 内存使用 5.09 MiB
提交时间 2026-07-06 12:04:29
显示代码纯文本
#include<bits/stdc++.h>
#define ll long long
#define N 200001
using namespace std;
ll n,q,x,y,ans,a[N],cnt[N],maxx,id,fz;
int main(){
    freopen("Queries.in","r",stdin);
    freopen("Queries.out","w",stdout);
    cin>>n>>q;
    for(int i=1;i<=n;i++){
        cin>>a[i];
        cnt[a[i]]++;
    }
    while(q--){
        cin>>x>>y;
        cnt[a[x]]--;
        cnt[y]++;
        a[x]=y;
        for(int i=1;i<=n;i++) maxx=max(maxx,cnt[i]);
        for(int i=1;i<n;i++){
            if(cnt[i]==0) continue;
            fz=max(maxx-cnt[i],(ll)1);
            for(int j=n;j>i;j--)
            if(cnt[j]>=fz){
                id=j;
                break;
            }
            ans=max(ans,id-i);
            id=0;
        }
        cout<<ans<<endl;
        ans=0;
    }
    return 0;
}