1
已解决
张睿杰
初级天翼
初级天翼
#include <iostream>
using namespace std;
int main()
{
int n,m,a[100001],k,h,u;
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
cin>>m;
for(int i=1;i<=m;i++)
{
cin>>k>>h;
if(k==1)
cout<<a[h]<<endl;
else if(k==3)
{
for(i=h;i<=n-1;i++) a[i]=a[i+1];
}
else if(k==2)
{
cin>>u;
for(i=h+1;i<=n;i++) a[i]=a[i-1];
a[h]=u;
}
}
}
张睿杰在2018-01-14 19:39:09追加了内容
#include <iostream>
using namespace std;
int a[100001];
int main()
{
int n,m,k,h,u;
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
cin>>m;
for(int i=1;i<=m;i++)
{
cin>>k>>h;
if(k==1)
cout<<a[h]<<endl;
else if(k==3)
{
for(int j=h;j<=n-1;j++) a[j]=a[j+1];
}
else if(k==2)
{
cin>>u;
for(int j=n+1;j>=h+1;j--) a[j]=a[j-1];
a[h]=u;
}
for(int u=0;u<=n+1;u++) cout<<a[u]<<' ';
cout<<endl;
}
}
只有40
1743 序列变换
题目描述 Description
现有一个长度为n的序列,对这个序列进行m次操作,可以对序列进行的操作分为以下三类:
1 i: 询问序列中第i个元素的值; 2 i v: 在序列中第i个元素前加入新的元素v; 3 i: 删除序列中的第i个元素。
注意:三类操作都要满足 i <= n
输入描述 Input Description
第一行:n,表示序列的初始长度 (1<=n<=1000)
第二行:n个用空格间隔的数,表示原始的整数序列
第三行:m,表示操作的次数 (1<=m<=1000)
接下来的m行分别是每次对序列进行的操作(题目描述中的三类操作中的一种)
输出描述 Output Description
对于操作 ① 输出对应的答案,一行输出一个数。
样例输入 Sample Input
5
6 31 23 14 5
5
1 2
2 2 7
1 2
3 3
1 3
样例输出 Sample Output
31
7
23
1
1
0
0
-1