问题标题: 酷町堂:1731 OMG

0
0
已解决
汪宇航
汪宇航
新手启示者
新手启示者

lzz今天学会了插入排序,他觉得插入排序很有趣。现在他有一个长为n的序列,而且这个序列中没有相同的数。现在他想对这个数列进行m次操作。每次操作他会选择一个序列中的元素x,然后他可以选择将x从序列中拿出来放到序列的尾部;或者将x取出来,然后把序列按顺序输出,再将x插入到原来的位置。但是他做了很久也没做出来,于是他请你来完成这个任务。

输入描述 Input Description

第一行输入一个整数n。
第二行按顺序输入n个整数,表示lzz的序列。
第三行输入一个整数m。
后面m行,每行两个整数a,b,若a=0,表示lzz将b取出来并放到序列的尾部;若a=1,表示lzz要将b取出来后输出,然后再将b放回原位。
(1<=n,m<=5000)

输出描述 Output Description

对于每一个a=1,输出一行。
每行n-1个整数,表示lzz取出了b之后的序列。

样例输入 Sample Input

10 1 2 3 4 5 6 7 8 9 10 5 0 5 1 10 1 7 0 9 1 8

样例输出 Sample Output

1 2 3 4 6 7 8 9 5 1 2 3 4 6 8 9 10 5 1 2 3 4 6 7 10 5 9

数据范围及提示 Data Size & Hint

1<=n,m<=5000


0
已采纳
朱优扬
朱优扬
中级天翼
中级天翼
    输入>>n;
    循环(定义 i=1;i<=n;i++){
        输入>>a;
        l.向尾部插入(a);  //l是int类型的链表
    }
    输入>>m;
    循环(定义 i=1;i<=m;i++){
        输入>>t1>>t2;
        如果(t1==0){
            for(定义 it=l.begin();it!=l.end();it++){ //it 是迭代器
                如果(*it==t2){
                    l.删除(it);
                    跳出;
                }
            }
            l.向尾部插入(t2); 
        }
        否则{
            for(定义 it=l.begin();it!=l.end();it++){ //it 同上一个循环的意思
                如果(*it!=t2){
                    输出<<*it<<" ";
                }
            }
            输出<<endl;
        }
    }

PS:会链表吗?不会自己想办法(学哪了?)

0
蔡辰夕
蔡辰夕
新手启示者
新手启示者

对不起挖了你的坟。

我要回答