hello friends i m trying to solve problem
http://online-judge.uva.es/p/v5/523.html

in this problem i  using floyd's algorithm i m able to figure out total cost
but i m not able to figure out the path . may be the reason that i  did not
understand  the algorithm fully and i  use it as a black box but now i have
to go inside blackbox so plz help me to figure out the path...
here is my code ...

#include<iostream>
using namespace std;
#define inf 1000000
int pathcost[1000][1000],pre[1000][1000];
int takeinput()
    {
        int j,k=0,m;
        char c;
        while(cin.get(c) &&  c!='\n')
        {
            if((c>='0' && c<='9') || (c=='-'))
                {
                    cin.unget();
                    cin>>pathcost[0][k];
                    if(pathcost[0][k]==-1)
                        pathcost[0][k]=inf;
                    k++;
                }
        }
        return(k);
    }



    int main()
       {
        int m1,citytax[1000],w,i,j,k,t1,t2;
        char c;

        scanf("%d",&m1);
        getchar();//one for \n and anthor for blank line
        getchar();
        while(m1--)
         {
            w=takeinput();
            //printf("w=%d\n",w);
            for( i=1;i<w;i++)
              for( j=0;j<w;j++)
                {
                    cin>>pathcost[i][j];
                    if(pathcost[i][j]==-1)
                        pathcost[i][j]=inf;
                }

            for(i=0;i<w;i++)
               cin>>citytax[i];

             getchar();

            for(i=0;i<w;i++)
              for(j=0;j<w;j++)
                pre[i][j]=i;

            for(k=0;k<w;k++)
             {
               for(i=0;i<w;i++)
                {
                  for(j=0;j<w;j++)
                     {

if(pathcost[i][j]>pathcost[i][k]+pathcost[k][j]+citytax[k])
                            {

pathcost[i][j]=pathcost[i][k]+pathcost[k][j]+citytax[k];
                                pre[i][j]=pre[k][j];
                            }
                     }
                }
            }

            while(cin.get(c) && c!='\n')
             {
                cin.unget();
                cin>>t1>>t2;
                printf("From %d to %d :\n",t1,t2);
                printf("Total cost : %d\n",pathcost[t1-1][t2-1]);
                getchar();
             }
            printf("\n");

        }
       }

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to algogeeks@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/algogeeks
-~----------~----~----~----~------~----~------~--~---

Reply via email to