题目描述:
给出一个长度为n,由0和1组成的字符串。统计长度为L(1≤L≤n)且全部由1组成的串的个数。
输入格式:
第一行1个整数n。
第二行n个字符。
输出格式:
按L升序输出符合题意的长度为L(1≤L≤n)的串。对于每个L,输出两个整数,第1个为长度L,第2个数为这样的串的个数,中间用一个空格隔开。
样例输入:
8 10111011
样例输出:
1 6 2 3 3 1
代码如下:
#include<cstdio>
#include<iostream>
using namespace std;
int n,b[500001]={},xmax=0;
char x;
int s=0;
int main(){
scanf("%d",&n);
for(int i=0;i<n;i++){
cin>>x;
if(x=='1'){
s++;
for(int k=1;k<=s;k++){
b[k]++;
}
if(xmax<s) xmax=s;
}else{
s=0;
}
}
for(int i=1;i<=xmax;i++) printf("%d %d\n",i,b[i]);
return 0;
}