| 比赛 | 暑假培训B班二测 | 评测结果 | AAAAAAEA | 
    | 题目名称 | 劣质的草 | 最终得分 | 87 | 
    | 用户昵称 | 日光。 | 运行时间 | 0.129 s | 
    | 代码语言 | C++ | 内存使用 | 4.13 MiB | 
    | 提交时间 | 2012-07-22 09:53:02 | 
显示代码纯文本
#include<iostream>
#include<fstream>
using namespace std;
int move[1000][1000];
int a[8][2]={{-1,1},{0,1},{1,1},{1,0},{1,-1},{0,-1},{-1,-1},{-1,0}};
int search(int m,int n)
{
	if(move[m][n]!=-1&&move[m][n]!=0)
	{
		move[m][n]=-1;
		for(int temp=0;temp<8;temp++)
		{
			if(m+a[temp][0]>=0&&n+a[temp][1]>=0)
			{
				search(m+a[temp][0],n+a[temp][1]);
			}
		}
	}
}
int main()
{
	ifstream fin("badgras.in");
	ofstream fout("badgras.out");
	int R,C;
	int num=0;
	fin>>R>>C;
	for(int i=0;i<R;i++)
	{
		for(int j=0;j<C;j++)
		{
			fin>>move[i][j];
		}
	}
	for(int i=0;i<R;i++)
	{
		for(int j=0;j<C;j++)
		{
			if(move[i][j]!=-1&&move[i][j]!=0)
			{
				search(i,j);
				num++;
			}
		}
	}
	fout<<num<<endl;
	return 0;
}