比赛 |
20120810 |
评测结果 |
AAAAAAAAAA |
题目名称 |
最大的湖 |
最终得分 |
100 |
用户昵称 |
Makazeu |
运行时间 |
0.006 s |
代码语言 |
C++ |
内存使用 |
0.35 MiB |
提交时间 |
2012-08-10 10:12:51 |
显示代码纯文本
#include <fstream>
using namespace std;
int form[101][101]; //定义二维表
int step[4][2]={{1,0},{-1,0},{0,1},{0,-1}};//递归的方向
int MaxNum=0;//最大的湖的
int N,M,K;
int TempK=0;
int q,p;
ifstream fin("lake.in");
ofstream fout("lake.out");
void print()
{
int m,t;
for (t=1;t<=N;t++)
{
for(m=1;m<=M;m++)
{
fout<<form[t][m]<<" ";
}
fout<<endl;
}
fout<<endl;
}
void Digui(int m,int n)
{
if (form[m][n]==1)
{
TempK++;
form[m][n]=0;
for (int tmp=0;tmp<4;tmp++)
{
q=m+step[tmp][0];
p=n+step[tmp][1];
if (q>=1 &&p>=1 && q<=N && p<=M && form[q][p]==1)
Digui(q,p);
}
}
}
int main()
{
fin>>N>>M>>K;
int x,y;
for (int i=0;i<K;i++)
{
fin>>x>>y;
form[x][y]=1;
}
int m,t;
//print();
for (t=1;t<=N;t++)
{
for (m=1;m<=M;m++)
{
if (form[t][m]==1)
{
TempK=0;
Digui(t,m);
//print();
//fout<<TempK<<endl;
if(TempK>MaxNum) MaxNum=TempK;
}
}
}
fout<<MaxNum;
return 0;
}