#define _CRT_SECURE_NO_WARNINGS//使用VS运行的
#include <stdio.h>
#include<math.h>
int main()
{
int n = 0, ans[40000] = { 0 }, k = 0, mode = 0;
char code='0';
//以下为计算n的值,并生成第一行的压缩码
do {
scanf("%c", &code);
n++;
if (code == '1') {
if (mode == 0) {
k++;
}
mode = 1;
ans[k]++;
}
else if (code == '0') {
if (mode == 1) {
k++;
}
mode = 0;
ans[k]++;
}
} while (code != '\n');
n--;//修正
//以下为生成2到最后一行的压缩码。(n-1):n-1行;(n+1):n个数码+1个换行;-1:最后一个换行输入后直接显示结果
for (int i = 0; i < (n - 1) * (n + 1) - 1; i++) {
scanf("%c", &code);
if (code == '1') {
if (mode == 0) {
k++;
}
mode = 1;
ans[k]++;
}
else if (code == '0') {
if (mode == 1) {
k++;
}
mode = 0;
ans[k]++;
}
}
printf("%d ", n);
//输出结果
for (int i = 0; i <= k; i++) printf("%d ", ans[i]);
return 0;
}
本地输出:



