I agree with Shady on asking for algo for the problem but lets not be hard
on posting spoj question on spoj forum as these too involves algorithm (our
interest).

@KK : Can you tell us the judging status you are hitting? (Wrong answer,
timeout??).


~Viswanath.

On Sat, Jul 23, 2011 at 4:57 PM, shady <[email protected]> wrote:

> there's something called spoj forum, try posting it there....
> secondly, ask whether ur algo is right or wrong, not the code
>
>
> On Sat, Jul 23, 2011 at 4:51 PM, KK <[email protected]> wrote:
>
>> www.spoj.pl/problems/SHOP
>> Its a pretty easy Q... But m not able to figure out any silly mistake
>> in my prog.. plzz help
>>
>> #include<iostream>
>> #include<vector>
>> #include<map>
>> #include<queue>
>>
>> using namespace std;
>>
>> char a[26][26];
>> int si, sj, di, dj, rows, cols;
>>
>> void BFS(vector< vector<int> > &v, int si, int sj, int rows, int
>> cols);
>> int safe(vector< vector<int> > &v, int r, int c, int current, int
>> rows, int cols);
>>
>> int main()
>> {
>>    freopen("input.txt", "r", stdin);
>>    freopen("output.txt", "w", stdout);
>>
>>    int si, sj;
>>    while(1)
>>    {
>>         cin >> cols >> rows;
>>
>>         if(rows == 0 && cols == 0)
>>              break;
>>
>>         vector<int> row(26, INT_MAX);
>>         vector< vector<int> > final(26, row);
>>
>>         for(int i=0; i<rows; i++)
>>           for(int j=0; j<cols; j++)
>>           {
>>              cin >> a[i][j];
>>              if(a[i][j] == 'S')
>>              {
>>                 si = i; sj = j;
>>              }
>>              else if(a[i][j] == 'D')
>>              {
>>                 di = i; dj = j;
>>                 a[i][j] = '0';
>>              }
>>           }
>>
>>         BFS(final, si, sj, rows, cols);
>>         cout << final[di][dj] << endl;
>>
>>         /*
>>         for(int i=0; i<rows; i++)
>>         {
>>           for(int j=0; j<cols; j++)
>>              cout << final[i][j] << " ";
>>           cout << endl;
>>         }
>>         cout << endl;
>>         */
>>    }
>>    return 0;
>> }
>>
>> void BFS(vector< vector<int> > &v, int si, int sj, int rows, int cols)
>> {
>>     pair<int, int> p;
>>     queue< pair<int, int> > q;
>>
>>     q.push(make_pair(si, sj));
>>     v[si][sj] = 0;
>>
>>     while(!q.empty())
>>     {
>>          p = q.front();   q.pop();
>>          int current = v[p.first][p.second];
>>
>>          if(safe(v, p.first+1, p.second, current, rows, cols))
>>               q.push(make_pair(p.first+1, p.second));
>>
>>          if(safe(v, p.first-1, p.second, current, rows, cols))
>>               q.push(make_pair(p.first-1, p.second));
>>
>>          if(safe(v, p.first, p.second+1, current, rows, cols))
>>               q.push(make_pair(p.first, p.second+1));
>>
>>          if(safe(v, p.first, p.second-1, current, rows, cols))
>>               q.push(make_pair(p.first, p.second-1));
>>
>>     }
>> }
>>
>> int safe(vector< vector<int> > &v, int r, int c, int current, int
>> rows, int cols)
>> {
>>    if(r >= 0 && r < rows && c >= 0 && c < cols && a[r][c] != 'X')
>>    {
>>         if(v[r][c] > current + a[r][c] - '0')
>>         {
>>             v[r][c] = current + a[r][c] - '0';
>>             return 1;
>>         }
>>
>>    }
>>    return 0;
>> }
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Algorithm Geeks" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to
>> [email protected].
>> For more options, visit this group at
>> http://groups.google.com/group/algogeeks?hl=en.
>>
>>
>  --
> You received this message because you are subscribed to the Google Groups
> "Algorithm Geeks" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/algogeeks?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to