#A5404P. 双向链表修改节点(改)

双向链表修改节点(改)

题目描述

给定一个长度为 nn 的双向链表,要求将链表中的第 kk 个节点的值修改为 vv

  • 节点编号从头节点开始算起,编号为 1,2,3,,n1, 2, 3, \dots, n
  • 如果 k0k \le 0 或者 k>nk > n(即链表中没有第 kk 个节点),则判定为无效操作,链表保持原样。 请输出操作后的双向链表(从头到尾的节点值)。

输入格式

第一行包含一个整数 nn (1n105)(1 \le n \le 10^5),表示初始双向链表的长度。 第二行包含 nn 个整数,表示初始双向链表从头到尾各个节点的值。 第三行包含两个整数 kkvv (105k105,109v109)(-10^5 \le k \le 10^5, -10^9 \le v \le 10^9),表示要修改的节点正向序号以及新的节点值。

输出格式

输出一行整数,包含操作后的双向链表从头到尾所有节点的值,数字之间用一个空格隔开。

样例输入 1

4
2 4 6 8
3 66

样例输出 1

2 4 66 8

样例说明 1

链表的第 3 个节点原先的值为 6,将其修改为 66。其他节点及其指针关系均保持不变。

样例输入 2

3
1 2 3
5 99

样例输出 2

1 2 3

样例说明 2

要修改的节点序号为 55,超出了当前链表的长度 33,属于越界无效操作,链表保持原样。

样例输入 3

5
10 20 30 40 50
1 -5

样例输出 3

-5 20 30 40 50

样例说明 3

将头节点(第 1 个节点)的值从 10 修改为 -5