现在有一个长度为n的数组,现在有m个操作,操作分别有:
1:删除当前数组最后一个元素,如果数组中没有元素则忽略
2 x:在当前数组最后一个数后面插入一个数x
3:删除当前数组中第一个元素,如果数组中没有元素则忽略
4 x:在当前数组第一个元素前面插入一个数x
输入格式 第一行输入一个数n表示原数组长度
第二行输入n个数表示这个数组
第三行输入一个数m表示操作数
后面m行操作
#include<bits/stdc++.h>
using namespace std;
const int maxn=10000000+100;
int n,x,q[maxn],L,R,opt,m,ans=0;
long long s[maxn];
int main()
{
cin>>n;
for(int i=1+1000005;i<=n+1000005;i++)
{
cin>>s[i];
}
L=1+1000005;
R=n+1000005;
cin>>m;
for(int i=1;i<=m;i++)
{
scanf("%d",&opt);
if(opt==1)
{
if(R>L+1)
{
R--;
}
}
else if(opt==2)
{
R++;
scanf("%d",&x);
s[R]=x;
}
else if(opt==3)
{
if(R>L)
{
L++;
}
}
else if(opt==4)
{
L--;
scanf("%d",&x);
s[L]=x;
}
}
for(int i=L;i<=R;i++)
{
ans+=s[i];
}
cout<<ans;
return 0;
}