#P005931. 打牌

打牌

当前没有测试数据。

题目描述

春节来临,你和朋友们一起玩起了扑克牌。

每次抓起一张牌,你会按从小到大的顺序,将这张扑克牌,插入到正确的位置,使得牌面保持从小到大的顺序。

具体抓牌时,你会先把这张牌放到最后一张牌的右侧,然后观察牌面顺序是否满足从小到大的顺序。如果不满足,再将这张牌插入到正确的位置上,使得所有的牌面保持从小到大的顺序。

这让你不禁想起了编程课上学习的插入排序。于是你的脑袋中不自觉的演练起了插入排序的过程。

现在输入 NN互不相等的整数,请编程模拟插入排序的全过程。

请注意输出格式,除了每个元素刚插入时输出 Insert element[i]: 以外,其余每行输出前,请先输出 22 个空格。

输入格式

第一行输入一个正整数 NN,表示读入数据的总数。

第二行输入 NN 个互不相等的整数,以空格隔开。

输出格式

输出格式请参照样例 11 的输出格式。

样例

输入

5
3 1 5 4 2

输出

Insert element[1]:
  Init:3
  Final:3
Insert element[2]:
  Init:3 1
  Move back:3 3
  Final:1 3
Insert element[3]:
  Init:1 3 5
  Final:1 3 5
Insert element[4]:
  Init:1 3 5 4
  Move back:1 3 5 5
  Final:1 3 4 5
Insert element[5]:
  Init:1 3 4 5 2
  Move back:1 3 4 5 5
  Move back:1 3 4 4 5
  Move back:1 3 3 4 5
  Final:1 2 3 4 5

数据范围

对于 100%100\% 的数据,满足 N100N \le 100,整数元素在 int 范围。