求助,悬关
查看原帖
求助,悬关
782125
Jasonshan10楼主2024/3/16 15:13

为什么下面这份代码编译器能过交上去却 CE

#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int MAXN=1e7+7;
ll ans1,ans2;
int a[MAXN],ls[MAXN],rs[MAXN];
int s[MAXN]={0,1},top=1;
inline int read(){
    int x=0,f=1;
    char ch=getchar();
    while(ch<'0'||ch>'9'){
        if(ch=='-')
            f=-1;
        ch=getchar();
    }
    while(ch>='0'&&ch<='9'){
        x=(x<<1)+(x<<3)+(ch^48);
        ch=getchar();
    }
    return x*f;
}
int main(){
	int n=read();
	for(int i=1;i<=n;++i){
		a[i]=read();
	}
	for(int i=2;i<=n;++i){
		while (a[i]<a[s[top]] && top!=0) --top;
		if (top==0){
			ls[i]=s[top+1];
		}
		else{
			ls[i]=rs[s[top]];
			rs[s[top]]=i;
		}
		s[++top]=i;
	}
	for(int i=1;i<=n;++i){
		ans1=ans1^(i*1ll*(ls[i]+1));
		ans2=ans2^(i*1ll*(rs[i]+1));
	}
	printf("%lld %lld\n",ans1,ans2);
	return 0;
}
2024/3/16 15:13
加载中...