社区讨论

63 分求救

P1638逛画展参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@m25h426f
此快照首次捕获于
2024/10/12 09:24
去年
此快照最后确认于
2025/11/04 17:24
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,m,a[1000006],cnt[2006],cnt2[2006];
ll l,r;
signed main(){
	cin>>n>>m;
	for(ll i = 1;i <= n;++i){
		cin>>a[i];
		cnt[a[i]]++;
		cnt2[a[i]]++;
	}
	l = 1 , r = n ;
	while(1) {
	//	cout << l << " " << r <<"\n" ;
		if(cnt[a[r]]-1>=1){
			cnt[a[r]]--;
			r--;
		}
		else if(cnt[a[l]]-1>= 1){
			cnt[a[l]]--;
			l++;
		}
		else break;
	}
	ll ans1_1=l,ans1_2=r,ans1_3=r-l+1;
	l = 1 , r = n;
	while(1){
	
		if(cnt2[a[l]]-1>= 1){
			cnt2[a[l]]--;
			l++;
		}
		else if(cnt2[a[r]]-1>=1){
			cnt2[a[r]]--;
			r--;
		}
		
		else break;
	}
	ll ans2_1=l,ans2_2=r,ans2_3=r-l+1;
	if(ans1_3<=ans2_3){
		cout << ans1_1 << " " << ans1_2;
	}
	else if(ans1_3>ans2_3){
		cout << ans2_1 << " " << ans2_2;
	}
	return 0;
}
#1 - #7 AC
#8 - #11 WA

回复

0 条回复,欢迎继续交流。

正在加载回复...