Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cmath>
- #include <cstdio>
- #include <vector>
- #include <iostream>
- #include <algorithm>
- using namespace std;
- typedef vector<int> vi;
- vector<vi> adjlist;
- vi visited;
- int l=0;
- void dfs(int a, int b, int c, int d){
- int e=0, f=0;
- l++;
- cout<<l;
- while(f==e){
- if(adjlist[c][d]==1){
- f++;
- if(c-1>=0)
- if(adjlist[c-1][d]==1){
- adjlist[c-1][d]=0;
- dfs(a, b, c-1, d);
- }
- if(c+1<a)
- if(adjlist[c+1][d]==1){
- adjlist[c+1][d]=0;
- dfs(a, b, c+1, d);
- }
- if(d+1<b)
- if(adjlist[c][d+1]==1){
- adjlist[c][d+1]=0;
- dfs(a, b, c, d+1);
- }
- if(d-1>=0)
- if(adjlist[c][d-1]==1){
- adjlist[c][d-1]=0;
- dfs(a, b, c, d-1);
- }
- }
- e++;
- }
- }
- int main() {
- int n, m, q;
- cin>>n>>m>>q;
- adjlist.assign(n, vi());
- int a, b=0;
- for(int i=0; i<n; i++){
- for(int j=0; j<m; j++){
- cin>>a;
- adjlist[i].push_back(a);
- if(a==1)
- b++;
- }
- }
- int c, d;
- for(int i=0; i<q; i++){
- cin>>c>>d;
- dfs(n, m, c-1, d-1);
- cout<<l<<endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement