同样的代码,不同的分数(9,37,45,46,55,64)分。求大佬指教
  • 板块P1638 逛画展
  • 楼主江群枫
  • 当前回复24
  • 已保存回复24
  • 发布时间2021/8/2 21:04
  • 上次更新2023/11/4 12:11:56
查看原帖
同样的代码,不同的分数(9,37,45,46,55,64)分。求大佬指教
303064
江群枫楼主2021/8/2 21:04
#include<bits/stdc++.h>
using namespace std;
int a[1000010],b[20100];
int main()
{
	int n,m,cnt=0;
	int l=1,r=n;
	int i,j;
	scanf("%d%d",&n,&m);
	for(i=1;i<=n;i++)
	scanf("%d",&a[i]);
	for(i=1,j=0;i<=n&&j<=n;i++)
	{
		while(j<n&&cnt!=m)
		{
			j++;
			b[a[j]]++;
		   if(b[a[j]]==1) cnt++;
		}
		if(j==n&&cnt!=m) break;
		if(r-l>j-i)
		{
			r=j;
			l=i;
		}
		b[a[i]]--;
		if(b[a[i]]==0) cnt--;
	}
	printf("%d %d\n",l,r);
	return 0;
}
2021/8/2 21:04
加载中...