很奇怪的错误求条
查看原帖
很奇怪的错误求条
1042481
All_In_Atom楼主2025/7/25 09:31

看着题解做的,但是不知道为什么挂了。

#include<bits/stdc++.h>
#define int long long

using namespace std;

const int N=1e7+5;
signed n,a[N],stk[N],top=1,ls[N],rs[N];
int ans1,ans2;

signed main(){
	ios::sync_with_stdio(0);
	cin.tie();cout.tie();
//	freopen("P5854_1.in","r",stdin);
//	freopen("P5854_1.out","w",stdout);
	cin>>n;
	stk[1]=1;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	for(int i=2;i<=n;i++){
		if(a[stk[top]]>a[i]&&top)top--;
		if(!top)ls[i]=stk[top+1];
		else ls[i]=rs[stk[top]],rs[stk[top]]=i;
		stk[++top]=i;
	}
	for(int i=1;i<=n;i++){
		ans1^=(1ll*i*(ls[i]+1));
		ans2^=(1ll*i*(rs[i]+1));
	}
	cout<<ans1<<" "<<ans2;
	return 0;
}
2025/7/25 09:31
加载中...