10个TLE...大佬们99我
查看原帖
10个TLE...大佬们99我
268897
yamakaze楼主2020/7/6 01:14

10个TLE...把我看傻了

#include <iostream>
#include <stdio.h>

using namespace std;

int main()
{
	bool s;	     //最后判断是在数1还是0
	char a[40000]={'\0'},b;
	int i,j,k;
	for(i=0;(b=getchar())!='\n';i++)
	{
		a[i]=b;  
	}
	j=i;
   //↑先把第一行录入数组,顺便判断一行几个字符
	for(i=j-1;i<j*j-1;)
	{
		if((b=getchar())!='\n')
		{
			i++;
			a[i]=b;
		}
	}
   //↑将后续各行的字符滤掉换行符并录入数组
	cout<<j<<" "; //输出每行字符数
	for(i=0,k=0,s=false;a[i]!='\0';)
	{
		if(!s&&a[i]=='0')
		{
			k++;i++;
		}
		else if(s&&a[i]=='1')
		{
			k++;i++;
		}
		else
		{
			cout<<k<<" ";
			k=0;
			s=!s;
		}
	}
  //↑0和1交替计数并输出数目
	cout<<k; 
  //↑输出最后一个被上面循环落下的最后一个数目
	return 0;
}

第一组输入和输出分别是

11111

00100

11111

00100

11111(输入)

5 0 5 2 1 2 5 2 1 2 5 (输出)

才5x5,怎么会超时呢...大佬们帮我康康罢.

2020/7/6 01:14
加载中...