问题标题: 酷町堂1743 序列变换

1
0
已解决
张睿杰
张睿杰
初级天翼
初级天翼
#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
已采纳
陆姗姗
陆姗姗
资深守护
资深守护

for(i=h+1;i<=n;i++) a[i]=a[i-1];这里错了

1
屠景瑞
屠景瑞
新手光能
新手光能

for(i=h+1;i<=n;i++) a[i]=a[i-1];这里错了

0
0
谢其桦
谢其桦
资深守护
资深守护

for(i=h+1;i<=n;i++) a[i]=a[i-1];这里错了

-1
我要回答