Thursday, 27 July 2017

Lightoj 1012 Guilty prince

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int go[4][2] = {{01}{0-1}{10}{-10}};
  5. char a[100][100];
  6. int c, r;
  7. bool visited[100][100];
  8. int BFS(int x, int y)
  9. {
  10.     int co = 1;
  11.     list<pair<int , int> > q;
  12.     q.push_back(make_pair(x, y));
  13.     list<int>::iterator i;
  14.     while(!q.empty()) {
  15.         pair<intint> s = q.front();
  16.         q.pop_front();
  17.         //cout<<s.first<<" "<<s.second<<endl;
  18.         for(int i = 0; i <4; i++){
  19.             int dx = s.first + go[i][0];
  20.             int dy = s.second  + go[i][1];
  21.             if(dx>=||dx< 0 || dy>= c|| dy<0 || visited[dx][dy] || a[dx][dy] =='#'){
  22.                   //cout<<"comes here"<<endl;
  23.                 continue;
  24.             }
  25.             //cout<<"comes"<<endl;
  26.             co++;
  27.             visited[dx][dy] = true;
  28.             q.push_back(make_pair(dx, dy));
  29.         }
  30.     }
  31.     return co;
  32. }
  33.  
  34. int main()
  35. {
  36.     int ts;
  37.     cin>>ts;
  38.     for(int p = 1; p <= ts; p++){
  39.             memset(visited, falsesizeof(visited));
  40.         cin>>c>>r;
  41.     int cx, cy;
  42.     for(int i = 0; i <r; i++){
  43.         for(int j = 0; j <c; j++){
  44.             cin>>a[i][j];
  45.             if(a[i][j] == '@'){
  46.                 cx= i;
  47.                 cy = j;
  48.             }
  49.         }
  50.     }
  51.     visited[cx][cy] = true;
  52.     //cout<<cx<<" "<<cy<<" ";
  53.     cout<<"Case "<<p<<": "<<BFS(cx, cy)<<endl;
  54.     }
  55.  
  56.     return 0;
  57. }

No comments:

Post a Comment

Most Featured Post

Lightoj 1159 - Batman

http://lightoj.com/volume_showproblem.php?problem=1159 problem analysis: First i thought of this as if s1, s2 and s3 are those three str...