比赛 26暑假集训模拟赛3 评测结果 AAAAAAATTTTTTTT
题目名称 Election Queries 最终得分 44
用户昵称 KKZH 运行时间 25.042 s
代码语言 C++ 内存使用 4.36 MiB
提交时间 2026-07-06 10:38:46
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
const int N=1e6+10;
int n,m;
int a[N],num[N];
int main(){
    freopen("Queries.in","r",stdin);
    freopen("Queries.out","w",stdout);
	ios::sync_with_stdio(false);
	cin.tie(0),cout.tie(0);
	cin>>n>>m;
	for(int i=1;i<=n;++i){
	    cin>>a[i];
	    ++num[a[i]];
	}
	int x,y,mx,ans,p,idx;
	for(int i=1;i<=m;++i){
	    cin>>x>>y;
	    --num[a[x]];
	    ++num[y];
	    a[x]=y;
	    mx=-1;
	    for(int j=1;j<=n;++j){
	        if(num[j]>=mx){
	            mx=num[j];
            }
        }
        ans=0;
        for(int j=1;j<n-ans;++j){
            if(num[j]==0) continue;
            p=max(mx-num[j],1),idx=0;
            for(int k=n;k>j;--k){
                if(num[k]>=p){
                    idx=k;
                    break;
                } 
            }
            ans=max(idx-j,ans);
        }
        cout<<ans<<"\n";
    }
	return 0;
}