大炮打蚊子(已AC)

#include <iostream>
#include <stdio.h>
using namespace std;

int sum;
void get(int a[20][20],int p,int q)
{
	if(a[p][q]==2){
		a[p][q]=1;
	}
	else if(a[p][q]==1){
		sum++;
		a[p][q]=0;
	}
}
int main()
{
	int i,j,m,n,k,x,y;
	int a[20][20];  
	int b[400];  //记录结果
	char ch;  //输入一个m×n格的二维平面
	scanf("%d%d",&m,&n);
	scanf("\n");
	for(i=0;i<m;i++)
    {
		for(j=0;j<n;j++){
			ch=getchar();
			if(ch=='#'){
				a[i][j]=2;
			}
			else if(ch=='0'){
				a[i][j]=0;
			}
		}
		scanf("\n");
	}
	scanf("%d",&k);
	for(i=0;i<k;i++)
    {
		sum=0;
		scanf("%d%d",&x,&y);
		if(a[x][y]!=0){
			sum++;
			a[x][y]=0;
		}
		if(x-1>=0 && x-1<m){
			get(a,x-1,y);
		}
		if(x+1>=0 && x+1<m){
			get(a,x+1,y);
		}
		if(y-1>=0 && y-1<n){
			get(a,x,y-1);
		}
		if(y+1>=0 && y+1<n){
			get(a,x,y+1);
		}
		b[i]=sum;
	}
	for(i=0;i<k;i++){
		printf("%d\n",b[i]);
	}
	return 0;
} 

 

展开阅读全文

没有更多推荐了,返回首页