诡异错误求调
查看原帖
诡异错误求调
734659
gjh72351楼主2023/12/14 21:25

下载测试点后第一个点是对的,但系统评测全WA

#include<bits/stdc++.h>
using namespace std;
const int mn=10000003;
inline int read(){
	int x=0,w=1;
	char ch=getchar();
	for(;ch<'0'||'9'<ch;ch=getchar())if(ch='-')w=-1;
	for(;'0'<=ch&&ch<='9';ch=getchar())x=10*x+ch-'0';
	return x*w;
}
int n,p[mn],l[mn],r[mn],tot,sta[mn];
long long ansl,ansr;
int main()
{
	//freopen("P5854_1.in","r",stdin); 
	n=read();
	for(register int i=1;i<=n;++i)p[i]=read();
	for(register int i=1;i<=n;++i){
		while(tot&&p[sta[tot]]>p[i])--tot; 
		if(!tot)l[i]=sta[tot+1]; 
		else l[i]=r[sta[tot]],r[sta[tot]]=i;
		sta[++tot]=i;
	}for(register int i=1;i<=n;++i)ansl^=1ll*i*(l[i]+1),ansr^=1ll*i*(r[i]+1);
	printf("%lld %lld",ansl,ansr);
	return 0;
}

测试结果

2023/12/14 21:25
加载中...