18pts求调,悬赏关注
  • 板块P1638 逛画展
  • 楼主Liwier
  • 当前回复15
  • 已保存回复15
  • 发布时间2022/10/16 21:26
  • 上次更新2023/10/27 07:11:30
查看原帖
18pts求调,悬赏关注
690301
Liwier楼主2022/10/16 21:26
#include <bits/stdc++.h>
using namespace std;
int n,m;
int a[1000006];
int vis[1000006];
int main(){
	cin>>n>>m;
	for(int i = 1;i<=n;i++){
		scanf("%d",&a[i]);
	}
	int l = 1,r = 2;
	int ansl = 114,ansr = 514;
	int sum = 0; 
	vis[a[1]] = 1;
	int anss= 0x7f7f7f7f;
	int viip = 1;
	//已经找到的画家个数 
	while(r!=n+1){
		bool fll = 0;
		if(vis[a[r]]==0)viip++;
		vis[a[r]]++;
		while(vis[a[r]] >= 1&&a[r] == a[l]){
			vis[a[l]]--;
			l++;
		}
		sum = r-l;
		if(sum<anss&&viip == m){
			anss = sum;
			ansl = l;
			ansr = r;
		}
		r++;
	}
	cout<<ansl<<" "<<ansr;
	return 0;
}
2022/10/16 21:26
加载中...