Tanya and Stairways
题目描述
Little girl Tanya climbs the stairs inside a multi-storey building. Every time Tanya climbs a stairway, she starts counting steps from 1 1 1 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 3 3 3 steps, and the second contains 4 4 4 steps, she will pronounce the numbers 1 , 2 , 3 , 1 , 2 , 3 , 4 1, 2, 3, 1, 2, 3, 4 1,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.
输入格式
The first line contains n n n ( 1 ≤ n ≤ 1000 1 \le n \le 1000 1≤n≤1000 ) — the total number of numbers pronounced by Tanya.
The second line contains integers a 1 , a 2 , … , a n a_1, a_2, \dots, a_n a1,a2,…,an ( 1 ≤ a i ≤ 1000 1 \le a_i \le 1000 1≤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 $ x $ steps, she will pronounce the numbers 1 , 2 , … , x 1, 2, \dots, x 1,2,…,x in that order.
The given sequence will be a valid sequence that Tanya could have pronounced when climbing one or more stairways.
输出格式
In the first line, output t t t — the number of stairways that Tanya climbed. In the second line, output t t t numbers — the number of steps in each stairway she climbed. Write the numbers in the correct order of passage of the stairways.
题面翻译
题目描述:
给你 N N N个数( 1 ≤ N ≤ 1000 1≤N≤1000 1≤N≤1000),这 N N N个数是由 M M M个从1开始的连续自然序列组成的
输入输出格式:
输入格式:
第一行,一个数: N N N
第二行 N N N个数,分别是组成 M M M个序列的元素
输出格式:
第一行,一个数: M M M
第二行, M M M个数,分别是这 M M M个序列的长度
样例 #1
样例输入 #1
7
1 2 3 1 2 3 4
样例输出 #1
2
3 4
样例 #2
样例输入 #2
4
1 1 1 1
样例输出 #2
4
1 1 1 1
样例 #3
样例输入 #3
5
1 2 3 4 5
样例输出 #3
1
5
样例 #4
样例输入 #4
5
1 2 1 2 1
样例输出 #4
3
2 2 1
代码
/************************************************
Note:
*************************************************/
#include <queue>
#include <stack>
#include <set>
#include <map>
#include <stdio.h>
#include <iostream>
#include <vector>
#include <iomanip>
#include <string.h>
#include <algorithm>
#include <cmath>
#include <cstring>
#define ll long long
#define ull unsigned long long
using namespace std;
const int N = 1e5 + 10;
const int INF = 0x3f3f3f3f;
inline int read()
{
int s = 0, w = 1;
char ch = getchar();
while (ch < '0' || ch > '9')
{
if (ch == '-')
w = -1;
ch = getchar();
}
while (ch >= '0' && ch <= '9')
s = s * 10 + ch - '0', ch = getchar();
return s * w;
}
int a[N], n, sum = 0;
int main()
{
n = read();
for (int i = 1; i <= n; i++)
cin >> a[i];
for (int i = 1; i <= n; i++)
if (a[i] == 1)
sum++;
cout << sum << endl;
for (int i = 1; i < n; i++)
if (a[i + 1] == 1)
cout << a[i] << " ";
cout << a[n] << endl;
return 0;
}