HLEP
查看原帖
HLEP
1085328
_logic楼主2024/11/19 16:25

样例过了,但第一个点没过

#include<bits/stdc++.h>
using namespace std;
struct xian{
	int a[1000010],num=0;
	int top(){
		return a[num];
	}
	void push(int b){
		a[++num]=b;
	}
	void pop(){
		num--;
	}
	bool empty(){
		return !(num>0);
	}
}di;
int n,c,a[1000010],b[1000010],num;
int main(){
	cin>>n;
	for(int i=1; i<=n; i++){
		cin>>a[i];
		while(a[di.top()]<=a[i]&&!di.empty()){
			num=num^di.top();
			di.pop();
		}
		num=num^i;
		di.push(i);
		b[i]=num;
	}
	for(int i=1; i<=n; i++)
		cout<<b[i]<<endl;
	return 0;
}
2024/11/19 16:25
加载中...