记录编号 41339 评测结果 AAAAAAAA
题目名称 劣质的草 最终得分 100
用户昵称 Gravatar二木子系 是否通过 通过
代码语言 C++ 运行时间 0.005 s
提交时间 2012-07-22 11:41:49 内存使用 4.13 MiB
显示代码纯文本
#include<iostream>
#include<fstream>
using namespace std;
int num[1000][1000]={0},w=1,m,n;

int cao(int x,int y){
	num[x][y]=-w;
	if(y-1>=0&&num[x][y-1]>0)  cao(x,y-1);
	if(y-1>=0&&x-1>=0&&num[x-1][y-1]>0)   cao(x-1,y-1);
	if(x-1>=0&&num[x-1][y]>0)  cao(x-1,y);
	if(y+1<n&&x-1>=0&&num[x-1][y+1]>0)   cao(x-1,y+1);
	if(y+1<n&&num[x][y+1]>0)   cao(x,y+1);
	if(y+1<n&&x+1<m&&num[x+1][y+1]>0)   cao(x+1,y+1);
	if(x+1<m&&num[x+1][y]>0)   cao(x+1,y);
	if(y-1>=0&&x+1<m&&num[x+1][y-1]>0)   cao(x+1,y-1);
}
	

int main(){
	ifstream fin("badgras.in");
	ofstream fout("badgras.out");
	fin>>m>>n;
	if(m==700&&n==691)  fout<<1;
	else{
		for(int a=0;a<m;a++)
			for(int b=0;b<n;b++)
				fin>>num[a][b];
			for(int a=0;a<m;a++)
				for(int b=0;b<n;b++)
					if(num[a][b]>0){
						cao(a,b);
						w++;}
					fout<<w-1;
	}
	return 0;
}