#448. CSP-J模拟套题2-20
CSP-J模拟套题2-20
- (完善程序)
设计一段程序,实现以下操作:
-
I x:在当前光标前插入数组 x。
-
D:删除当前光标前的数字。
-
L:光标向前移动一个数字。
-
R:光标向后移动一个数字。
-
Q k:输出光标之前的数列 {a1,a2,...,an} 中第 k 位及之前的最大前缀和,保证 k ≤ n。
#include<bits/stdc++.h>
define N 1000010
using namespace std;
int s1[N],s2[N];
int ans[N],S[N];
int top1,top2,n;
int main()
{
scanf(“%d”,&n);
ans[0]=-(1<<30);
for(int i=1;i<=n;i++)
{
char fl; cin>>fl;
if(fl=='I')
{
int x; scanf("%d",&x);
_________________________
S[top1]=S[top1-1]+x;
ans[top1]=max(ansp[top1-1],S[top1]);
}
if(fl=='D') _________________________;
if(fl=='L') _________________________;
if(fl=='R')
{
int x=_________________________;
_________________________;
S[top1]=S[top1-1]+x;
ans[top1]=max(ans[top1-1],S[top1]);
}
if(fl=='Q')
{
int x; scanf("%d",&x);
printf("%d\n",ans[x]);
}
}
return 0;
}
① 处应填( )。
{{ select(1) }}
- s1[++top1]=x;
- s1[top1++]=x;
- s2[++top2]=x;
- s2[top2++]=x;
② 处应填( )。
{{ select(2) }}
- top1++
- top2++
- top1--
- top2--
③ 处应填( )。
{{ select(3) }}
- s1[++top1]=s2[top2--];
- s1[++top2]=s2[top1--];
- s2[++top1]=s1[top2--];
- s2[++top2]=s1[top1--];
④ 处应填( )。
{{ select(4) }}
- s2[top2++]
- s1[top1++]
- s2[top2--]
- s1[top1--]
⑤ 处应填( )。
{{ select(5) }}
- s1[++top1]=x;
- s1[--top1]=x;
- s2[++top2]=x;
- s2[--top2]=x;
相关
在下列比赛中: