Little girl Tanya climbs the stairs inside a multi-storey building. Every time Tanya climbs a stairway, she starts counting steps from 11 to the number of steps in this stairway. She speaks every number aloud. For example, if she climbs two stairways, the first of which contains 33 steps, and the second contains 44 steps, she will pronounce the numbers 1,2,3,1,2,3,41,2,3,1,2,3,4.

You are given all the numbers pronounced by Tanya. How many stairways did she climb? Also, output the number of steps in each stairway.

The given sequence will be a valid sequence that Tanya could have pronounced when climbing one or more stairways.

Input

The first line contains nn (1≤n≤10001≤n≤1000) — the total number of numbers pronounced by Tanya.

The second line contains integers a1,a2,…,ana1,a2,…,an (1≤ai≤10001≤ai≤1000) — all the numbers Tanya pronounced while climbing the stairs, in order from the first to the last pronounced number. Passing a stairway with xx steps, she will pronounce the numbers 1,2,…,x1,2,…,x in that order.

The given sequence will be a valid sequence that Tanya could have pronounced when climbing one or more stairways.

Output

In the first line, output tt — the number of stairways that Tanya climbed. In the second line, output tt numbers — the number of steps in each stairway she climbed. Write the numbers in the correct order of passage of the stairways.

Examples

Input

7
1 2 3 1 2 3 4

Output

2
3 4

Input

4
1 1 1 1

Output

4
1 1 1 1

Input

5
1 2 3 4 5

Output

1
5

Input

5
1 2 1 2 1

Output

3
2 2 1

题解:模拟 统计1的个数就是楼梯数 然后记录每个1前面的数就是步骤数。

代码:

#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm> using namespace std; int main() { int n;
cin>>n;
int a[1005],b[1005];
int cnt=1;
cin>>a[0];
for(int t=1; t<n; t++) {
scanf("%d",&a[t]);
if(a[t]==1) {
b[cnt]=a[t-1];
cnt++;
}
}
cout<<cnt<<endl;
b[cnt]=a[n-1];
cnt++;
for(int t=1; t<cnt; t++) {
cout<<b[t]<<" ";
}
return 0;
}

最新文章

  1. C语言基础(11)-随机数发生器
  2. vsftpd 配置:chroot_local_user与chroot_list_enable详解
  3. 限制文本框只能输入数字或浮点数的JS脚步
  4. 设计模式之——单例模式(Singleton)的常见应用场景
  5. MongoDB安装Windows服务
  6. [转载]MongoDB学习 (四):创建、读取、更新、删除(CRUD)快速入门
  7. Windows下效率必备软件
  8. inner join on, left join on, right join on
  9. nodejs调试总结
  10. (十三)UITableView数据模型化
  11. MapReduce-FileInputFormat
  12. MySQL5.7 GTID学习笔记
  13. Idea 2017.3以后版本的破解
  14. python装饰器带括号和不带括号的语法和用法
  15. php5.6-lumen与php5.6-phalcon性能对比
  16. 用canvas把页面中所有元素的轮廓绘制出来
  17. jq插件封装格式
  18. 第七章 二叉搜索树 (d1)AVL树:重平衡
  19. 简述组件化解决方案CTMediator与MGJRouter的主要思想
  20. linux云主机小技巧

热门文章

  1. html5实现进度条功能效果非常和谐
  2. IDEAL葵花宝典:java代码开发规范插件 checkstyle、visualVM、PMD 插件
  3. css:before和after中的content属性
  4. (转)Linux内核本身和进程的区别 内核线程、用户进程、用户线程
  5. 书写优雅的shell脚本(八)- 日期格式化
  6. 002-CSS基础
  7. MAC OS Sierra 10.12.6 下对固态硬盘SSD 开启TRIM功能
  8. oracle 11g 常用命令
  9. CodeForces - 660F:Bear and Bowling 4(DP+斜率优化)
  10. BZOJ_3159_决战