查找一个只包含0和1的矩阵中每行最长的连续1序列。
输入说明
输入第一行为两个整数m和n(0<=m,n<=100)表示二维数组行数和列数,其后为m行数据,每行n个整数(0或1),输入数据中不会出现同一行有两个最长1序列的情况。
输出说明
找出每一行最长的连续1序列,输出其起始位置(从0开始计算)和结束位置(从0开始计算),如果这一行没有1则输出两个-1,然后换行。
#include<stdio.h>
int main()
{
int m,n,i,j,a[100][100],b,c,d,e;
scanf("%d %d",&m,&n);
for(j=0;j<m;j++)
for(i=0;i<n;i++)
scanf("%d",&a[j][i]);
for(j=0;j<m;j++)
{
for(i=0,b=0,e=0,c=0;i<n;i++)
{
if(a[j][i]==1)
b++;
if(a[j][i]==0&&b>c)
{
c=b;
d=i-1;
b=0;
}
if(i==n-1&&a[j][i]==1&&b>c)
{
c=b;
d=i;
b=0;
}
if(a[j][i]==0)
e++;
}
if(e==n)
printf("%d %d\n",-1,-1);
else
printf("%d %d\n",d-c+1,d);
}
return 0;
}