求救
查看原帖
求救
545993
lyc18935936231楼主2025/2/7 17:20
#include<bits/stdc++.h>
using namespace std;
const int N=1e6+5;
int T,x,i,m,mmax[N],t;
char c;
struct lianbiao{
	int n,l,r,sum;
}a[N];
int main(){
	mmax[1]=-11451400;
	cin>>T;
	while(T--){
		cin>>c;
		if(c=='I'){
			cin>>x;
			a[m+1].n=x;
			a[m+1].l=i;
			a[++m].r=a[i].r;
			a[i].r=m;
			i=m;
			a[i].sum=a[i].n+a[a[i].l].sum;
			mmax[++t]=max(mmax[t],a[i].sum);
		}else if(c=='D'){
			a[a[i].l].r=a[i].r;
			a[a[i].r].l=a[i].l;
			i=a[i].l;
			mmax[t--]=-11451400;
		}else if(c=='L'){
			i=a[i].l;
			t--;
		}else if(c=='R'){
			i=a[i].r;
			a[i].sum=a[i].n+a[a[i].l].sum;
			mmax[++t]=max(mmax[t],a[i].sum);
		}else if(c=='Q'){
			cin>>x;
			cout<<mmax[x]<<endl;
		}
		/*int j=i;
		while(a[j].n!=0){
			cout<<a[j].mmax<<" ";
			j=a[j].l;
		}
		cout<<endl;*/
	}
	return 0;
}
2025/2/7 17:20
加载中...