第9回ブルーブリッジカップ地球温暖化問題(dfs)


地球温暖化
ある海域のNxN画素の写真を持っています.海を表し、「#」は陸地を表し、以下に示す.
....... .##.... .##.... ....##. ..####. ...###. .......
このうち「上下左右」の4つの方向につながっている陸地が島を構成している.例えば上図には2つの島があります. 
地球温暖化で海面が上昇したため、科学者は今後数十年間、島の縁の1画素の範囲が海水に水没すると予測している.具体的には、陸地画素が海洋に隣接している(上下左右4つの隣接画素のうち海洋がある)と、水没する. 
例えば、上図の海域は将来次のようになります.
....... ....... ....... ....... ....#.. ....... .......
科学者の予測によると、写真の中にどれだけの島が完全に水没するか計算してください. 
【入力フォーマット】1行目は整数Nを含む.(1<=N<=1000)以下のN行N列は1枚の海域写真を表す.
写真は1行目、1列目、N行目、N列目の画素が海洋であることを保証します. 
【出力フォーマット】整数で答えを表します.
【入力例】7.......###.....###.....###...###...####......###......
【出力サンプル】1
リソース約定:ピークメモリ消費(仮想マシン含む)<256 M CPU消費<1000 ms
要求通りに出力してください.ヘビを描いて印刷しないでください.「入力してください.」と入力します.
注意:main関数は0を返す必要があります.ANSI C/ANSI C++標準のみ使用します.コンパイル環境やオペレーティングシステムに依存する特殊な関数を呼び出さないでください.すべての依存する関数は、ソースファイルでincludeがエンジニアリング設定によって共通ヘッダファイルを省略できないことを明確にしなければならない.
プログラムをコミットするときは、所望の言語タイプとコンパイラタイプを選択することに注意してください.
#include 
#include
using namespace std;

int n;
char a[1005][1005];
int dx[4]={1,0,0,-1};
int dy[4]={0,1,-1,0};

//  dfs 
void dfs(int x,int y){
	a[x][y]='*';	//          
	for(int i=0;i<4;i++){	//     
		int nx=x+dx[i];
		int ny=y+dy[i];
		if(nx>=0&&ny>=0&&nx>n;
	int sum1=0,sum2=0; //sum1            sum2           
	for(int i=0;i