Problem F: 【中级组】移动数字零

Memory Limit:128 MB Time Limit:1.000 S
Judge Style:Text Compare Creator:
Submit:160 Solved:65

Description

       编程竞赛结束了,n个学生的score成绩表上有一些为零的成绩记录,这是当天缺席竞赛的学生成绩记录,组委会老师要求你编写一个函数将所有零移动到score数组的末尾,同时保持非零成绩的相对顺序, 还需要输出零的个数。(成绩为0~100之间的整数)        说明:        (1) 必须在原数组上操作,不能拷贝额外的数组。        (2) n为(1~1000), score[i](0~100)。        

示例1:
输入: score[]={0,72,59,0,59,89,53,66}, n=8; 输出: 72 59 59 89 53 66 0 0
         2
解释:可使用冒泡排序的思想,将所有 0 依次交换到数组末尾。       因为使用冒泡排序不会改变本题中非零元素的相对顺序,       所以符合题目中保持非零元素相对顺序的要求。

Input

     输入有两行,第一行数组长度 n  第二行为 score 数组中的 n个数据。数据之间用空格分隔。

Output

     输出弟一行为将零移动后的score数组,数据之间用空格分隔。 第二行为一个整数即零的个数。

Sample Input Copy

8
0 72 59 0 59 89 53 66
 

Sample Output Copy

72 59 59 89 53 66 0 0
2

HINT

提示:
n为(1~1000), score[i](0~100)。
成绩为0~100之间的整数