45分求助
  • 板块P1638 逛画展
  • 楼主Rhss
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/8/2 17:46
  • 上次更新2023/10/27 17:20:08
查看原帖
45分求助
684890
Rhss楼主2022/8/2 17:46
#include <bits/stdc++.h>
#define nx 110000
using namespace std;
int n,m;
vector<int> vi;
unordered_map<int,int> mp;
int main(){
	cin>>n>>m;
	int x;
	vi.push_back(0);
	for(int i = 1;i<=n;++i){
		cin>>x;
		vi.push_back(x);
	}
	int l = 1;	
	int r = 1;
	//xp记录画家的种类
	int xp = 0;
	//如果区间不满足要求,往右伸长
	while(r<=n&&xp!=m){
		mp[vi[r]]++;
		if(mp[vi[r]]==1){
			xp++;
		}
		r++;
	}
	r--;
	//如果区间满足要求,往右缩短
	while(xp==m){
		mp[vi[l]]--;
		if(mp[vi[l]]==0){
			break;
		}
		l++;
	}
	cout<<l<<" "<<r;
	return 0;
}

2022/8/2 17:46
加载中...