Poj Solution 2612

http://poj.org/problem?id=2612

#include<iostream>
#include<string>
#include<cstdlib>
using namespace std;


int main()
{
char mine[15][15];
char touch[15][15];
char board[15][15];
int i,j,n,num=0;
bool flag=false;
scanf("%d",&n);
for(i=0;i<n;i++)
   scanf("%s",mine[i]);
for(i=0;i<n;i++)
   scanf("%s",touch[i]);
for(i=0;i<n;i++)
   for(j=0;j<n;j++)
   {
    if(touch[i][j]=='x')
    {
     if(mine[i][j]=='*')
     {
      flag=true;
      board[i][j]='*';
     }
     else if(mine[i][j]=='.')
     {
      if((j-1)>=0&&mine[i][j-1]=='*')
       num++;
      if((j+1)<n&&mine[i][j+1]=='*')
       num++;
      if(i-1>=0)
      {
       if((j-1)>=0&&mine[i-1][j-1]=='*')
        num++;
       if(mine[i-1][j]=='*')
        num++;
       if((j+1)<n&&mine[i-1][j+1]=='*')
        num++;
      }
      if(i+1<n)
      {
       if((j-1)>=0&&mine[i+1][j-1]=='*')
        num++;
       if(mine[i+1][j]=='*')
        num++;
       if((j+1)<n&&mine[i+1][j+1]=='*')
        num++;
      }

      board[i][j]=num+48;
      num=0;
     }
    }
    else if(touch[i][j]=='.')
     board[i][j]='.';
   }
if(flag)
{
   for(i=0;i<n;i++)
    for(j=0;j<n;j++)
     if(mine[i][j]=='*')
      board[i][j]='*';
}
for(i=0;i<n;i++)
{
   for(j=0;j<n;j++)
    printf("%c",board[i][j]);
   printf("n");
}
system("pause");
return 0;
}
											
This entry was posted in poj. Bookmark the permalink.