63分,求助大佬 o(╥﹏╥)o
  • 板块P1638 逛画展
  • 楼主witw
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/1/30 12:26
  • 上次更新2023/10/28 10:03:54
查看原帖
63分,求助大佬 o(╥﹏╥)o
570507
witw楼主2022/1/30 12:26
#include<iostream>//先左后右,先右后左两种情况比较输出
using namespace std;
int a[1000005];
int b1[2005];
int b2[2005];
int main(){
	int n,m,l,r;
	cin>>n>>m;
	for(int i=1;i<=n;++i){
		cin>>a[i];
		b1[a[i]]++;
		b2[a[i]]++;
	}
	l=1,r=n;
	while(1){
		if(b2[a[l]]-1!=0)b2[a[l]]--;
		else break;
		l++;
	}
	while(1){
		if(b2[a[r]]-1!=0)b2[a[r]]--;
		else break;
		r--;
	}
	int x1=l,y1=r;
	l=1,r=n;
	while(1){
		if(b1[a[r]]-1!=0)b1[a[r]]--;
		else break;
		r--;
	}
	while(1){
		if(b1[a[l]]-1!=0)b1[a[l]]--;
		else break;
		l++;
	}
	int x2=l,y2=r;
	if(y2-x2<y1-x1)cout<<x2<<" "<<y2;
	else if(y2-x2==y1-x1){
		if(x1<x2)cout<<x1<<" "<<y1;
		else cout<<x2<<" "<<y2;
	}else{
		cout<<x1<<" "<<y1;
	}
	return 0;
} 
2022/1/30 12:26
加载中...