Bf030808 @ 2022-10-06 21:27:40
#include <bits/stdc++.h>
using namespace std;
int main() {
int n,t=0,m=0,l;
char s[40001];
scanf("%s",s);
l=int(strlen(s));
for(int i=l;i<l*l;i++)
scanf(" %c",&s[i]);
printf("%d",l);
for(int i=0;i<l*l;i++){
if(s[i]=='0')
t++;
if(s[i]=='1')
m++;
if(s[i]!=s[i+1]&&s[i]=='0')
{printf(" %d",t);t=0;}
if(s[i]!=s[i+1]&&s[i]=='1')
{printf(" %d",m);m=0;}
}
printf("\n");
return 0;
}
by ud2_ @ 2022-10-06 21:36:13
第一个数表示连续有几个 0。
所以,当点阵左上角是 1 时会出错。
by Bf030808 @ 2022-10-06 22:09:20
@ud2_ 题上咋不说第一个数是1的话输出0,不看别人代码根本不知道要先输出一个0