Advertisement
Guest User

michalis

a guest
Mar 20th, 2019
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.35 KB | None | 0 0
  1. #include <cmath>
  2. #include <cstdio>
  3. #include <vector>
  4. #include <iostream>
  5. #include <algorithm>
  6. using namespace std;
  7. typedef vector<int> vi;
  8. vector<vi> adjlist;
  9. vi visited;
  10. int l=0;
  11. void dfs(int a, int b, int c, int d){
  12.     int e=0, f=0;
  13.     l++;
  14.     cout<<l;
  15.     while(f==e){
  16.         if(adjlist[c][d]==1){
  17.             f++;
  18.             if(c-1>=0)
  19.             if(adjlist[c-1][d]==1){
  20.                 adjlist[c-1][d]=0;
  21.                 dfs(a, b, c-1, d);
  22.             }
  23.             if(c+1<a)
  24.             if(adjlist[c+1][d]==1){
  25.                 adjlist[c+1][d]=0;
  26.                 dfs(a, b, c+1, d);
  27.             }
  28.             if(d+1<b)
  29.             if(adjlist[c][d+1]==1){
  30.                 adjlist[c][d+1]=0;
  31.                 dfs(a, b, c, d+1);
  32.             }
  33.             if(d-1>=0)
  34.             if(adjlist[c][d-1]==1){
  35.                 adjlist[c][d-1]=0;
  36.                 dfs(a, b, c, d-1);
  37.             }
  38.         }
  39.         e++;
  40.     }
  41. }
  42. int main() {
  43.     int n, m, q;
  44.     cin>>n>>m>>q;
  45.     adjlist.assign(n, vi());
  46.     int a, b=0;
  47.     for(int i=0; i<n; i++){
  48.         for(int j=0; j<m; j++){
  49.             cin>>a;
  50.             adjlist[i].push_back(a);
  51.             if(a==1)
  52.                 b++;
  53.         }
  54.     }
  55.     int c, d;
  56.     for(int i=0; i<q; i++){
  57.         cin>>c>>d;
  58.         dfs(n, m, c-1, d-1);
  59.         cout<<l<<endl;
  60.     }
  61.     return 0;
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement