Sunday, August 17, 2014

uva : 439 - Knight Moves


#include<cstdio>
#include<cstring>
#include<string>
#include<map>
#include<iostream>
#include<queue>
using namespace std;
int main()
{
   /* freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);*/
    char s1[10],s2[10];
    map<string, int>m;
    m["a1"]=1;m["a2"]=2;m["a3"]=3;m["a4"]=4;m["a5"]=5;m["a6"]=6;m["a7"]=7;m["a8"]=8;
    m["b1"]=9;m["b2"]=10;m["b3"]=11;m["b4"]=12;m["b5"]=13;m["b6"]=14;m["b7"]=15;m["b8"]=16;
    m["c1"]=17;m["c2"]=18;m["c3"]=19;m["c4"]=20;m["c5"]=21;m["c6"]=22;m["c7"]=23;m["c8"]=24;
    m["d1"]=25;m["d2"]=26;m["d3"]=27;m["d4"]=28;m["d5"]=29;m["d6"]=30;m["d7"]=31;m["d8"]=32;
    m["e1"]=33;m["e2"]=34;m["e3"]=35;m["e4"]=36;m["e5"]=37;m["e6"]=38;m["e7"]=39;m["e8"]=40;
    m["f1"]=41;m["f2"]=42;m["f3"]=43;m["f4"]=44;m["f5"]=45;m["f6"]=46;m["f7"]=47;m["f8"]=48;
    m["g1"]=49;m["g2"]=50;m["g3"]=51;m["g4"]=52;m["g5"]=53;m["g6"]=54;m["g7"]=55;m["g8"]=56;
    m["h1"]=57;m["h2"]=58;m["h3"]=59;m["h4"]=60;m["h5"]=61;m["h6"]=62;m["h7"]=63;m["h8"]=64;
    int graph[9][9],i,j,n=1;
    char ch[20];
    string c;
    map<int,string>mn;
    for(i=1;i<=8;i++)
    {
        for(j=1;j<=8;j++)
        {
            ch[0]=i+'0';
            ch[1]=j+'0';
            ch[2]='\0';
            c=ch;
            mn[n++]=c;
          // cout << "mn["<< n-1 << "]=" << mn[n-1] << " ";
        }
       // printf("\n");
    }
    n=1;
    for(i=1;i<=8;i++)
    {
        for(j=1;j<=8;j++)
        graph[i][j]=n++;
    }
    while(scanf("%s %s",&s1,&s2)==2)
    {
        int source=m[s1];
        int destination=m[s2],u,v,g[9][9],k,l;
        for(i=1;i<=8;i++)
        for(j=1;j<=8;j++)
        g[i][j]=0;
        queue<int >q;
        q.push(source);
        c=mn[source];
        //cout << c << endl;
        i=c[0]-'0';
        j=c[1]-'0';
        g[i][j]=0;
       // printf("%d %d\n",i,j);
        while(!q.empty())
        {

No comments:

Post a Comment