hi...
I've used BFS algorithm to solve 567 of UVA...
but it takes WA...

here's my solution in c++:


#include <iostream>
#include <queue>
#include <cstring>
#include <stdio.h>

using namespace std;

int mat[21][21];
int mark[21];
int tc = 0;
int n, m, t;
int a, b;

void bfs ()
{
   queue <int> q;
   q.push (a);
   mark[a] = 0;
   while (!q.empty())
   {
      int temp = q.front();
      q.pop();
      if (temp == b)
         return;
      for (int i = 1; i <= 20; i++)
         if (mat[temp][i] == 1 && mark[i] == -1)
         {
            q.push (i);
            mark[i] = mark[temp] + 1;
         }
   }
}

int main ()
{
   //freopen ("input.in", "r", stdin);
   while (!cin.eof())
   {
      tc++;
      for (int i = 0; i < 21; i++)
         memset (mat[i], 0, sizeof mat[i]);
      for (int i = 1; i <= 19 && cin >> n; i++)
         for (int j = 0; j < n && cin >> m; j++)
         {
            mat[i][m] = 1;
            mat[m][i] = 1;
         }
      cin >> t;
      cout << "Test Set #" << tc << endl;
      for (int i = 0; i < t && cin >> a >> b; i++)
      {
         memset (mark, -1, sizeof mark);
         bfs ();
         printf ("%2d", a);
         cout << " to ";
         printf ("%2d", b);
         cout << ": " << mark[b] << endl;
      }
      cout << endl;
   }
   return 0;
}


Is there anyone to help me?!
tnx

-- 
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 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to