给定一个正整数 m和 m 条链表,每条链表由若干数字构成,并且同一条链表中任一数字 n 都满足计算公式 key=(2×n+1)modm 得到的关键字均相同。这 m 条链表初始时已按“链表长度从小到大排序(若长度相同则关键字小的排前)”排列。
给定一个数字 m ,将一堆数字中的每一个按值(假定值为 n )进行运算分成 m 类,运算公式为 (2∗n+1)%m ,算出结果值为关键字。相同关键字的数字组成一个链表,所以共有 m 条链表,每条链表中的值占据一行,根据 m 条链表的元素个数从小到大顺序排列(个数相同时,关键字小的排在前面),先假定对于一个给定满足上述条件的数字已按规则排列完全后,在此基础上做一项操作,即把所有尾数是 x 的值 n 加上一个值 y ,调整链表组成,插入的元素要求放在链表的末尾,使得变化后的链表依然满足上述条件,具体满足如下两点:
(1) 同一个链表中的元素值关健字一样
(2) 链表间的排列顺序:按元素个数从小到大排列(个数相同时,关键字小的排在前面)
调整链表组成时,如果让放到原链表,则只更新值即可,而且不需要调整顺序(即:不需要移动到链表末尾)。只有调整到其他链表时才需要。
输入第一行是数字 m ,接下来的 m 行数字,用 n 表示每一行的任一个数字,那么这一行按 (2∗n+1) 计算结果都一样,且已经按长度排序好,最后一行由两个数组组成 x y,表示对尾数是 x 的元素值增加 y ,0<m≤10,0<n<100,0<x,y≤100
满足上述条件调整后的 m 个链表
输入
3
7 13
11 17 8
12 9 27 15
7 30
输出
37 13
11 47 8
12 9 57 15
说明
m 值为 3,3 条链表值已分类好,将尾数为 7 的值加 30 后,发生如下变化:
7−>37,17−>47,27−>57 关键字均不变,只需要修改原先的元素值
输入
3
7 13
11 17 8
12 9 27 15
5 2
输出
7 13
12 9 27
11 17 8 17
说明
m 值为 3,3 条链表值已分类好,将尾数为 5 的值加 2 后,发生如下变化:15−>17 ,关键字由 1 变为 2 ,15 从原来位置删除,17 插入新位置,同时链表长度变化,需要变化输出顺序