Tuesday, 30 December 2014

UVA 260 - Il Gioco dell'X(cpp file)

Problem Type : GRAPH(BFS)




#include<stdio.h>
#include<string.h>
#include<queue>
#define MAX 1111
using namespace std;
int color[MAX][MAX],n;
char mat[MAX][MAX];
int X[6]= {-1,-1,0,0,1,1};
int Y[6]= {-1,0,-1,1,0,1};
void bfs(int i,int j)
{
    int vx,ux,vy,uy,k;
    queue<int>Q;
    Q.push(i);
    Q.push(j);
    color[i][j]=1;
    while(!Q.empty())
    {
        ux=Q.front();
        Q.pop();
        uy = Q.front();
        Q.pop();
        for(k=0; k<6; k++)
        {
            vx = ux+X[k];
            vy = uy+Y[k];
            if((vx>=1&&vx<=n) && (vy>=1&&vy<=n) && mat[vx][vy]=='w')
            {
                if(!color[vx][vy])
                {
                    color[vx][vy]=1 ;
                    Q.push(vx);
                    Q.push(vy);
                }
            }
        }
    }
}
int main()
{
    int i ,j,l,cas=0;
    while(scanf("%d",&n)&&n)
    {
        cas++;
        getchar();
        for(i=1; i<=n; i++)
        {
            for(j=1; j<=n; j++)
            {
                scanf(" %c",&mat[i][j]);
            }
        }

        for(i=1; i<=n; i++)
        {
            if(mat[i][1] == 'w' && color[i][1]==0)
            {
                bfs(i,1);
            }

        }
        int cou =0;
        for(i=1; i<=n; i++)
        {
            if(color[i][n]==1)
            {
                cou=1;
                break;
            }
        }
        if(cou==1)
            printf("%d W\n",cas);
        else if(cou ==0)
        {
            printf("%d B\n",cas);
        }

        memset(color,0,sizeof(color));
        memset(mat,'\0',sizeof(mat));
    }

}

No comments:

Post a Comment

ট্রিগার এর মাধ্যমে ডাটা ইনসার্ট - insert data using Database Trigger (Mysql)

সর্বপ্রথম আমরা প্রবলেমটা বুঝিঃ আমি একটা টেবিলের একটা কলামের ভ্যালুর উপর ডিপেন্ড করে আরেকটা কলামে ডাটা insert করব । এই কাজটা ট্রি...