fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define int long long int
  4. void visit(vector<vector<char>> &v, int i, int j, int r, int c){
  5. if(i<0 || j<0 || i==r || j==c || v[i][j]=='0') return;
  6. v[i][j]='0';
  7. visit(v,i+1,j,r,c);
  8. visit(v,i,j+1,r,c);
  9. visit(v,i-1,j,r,c);
  10. visit(v,i,j-1,r,c);
  11. return;
  12. }
  13. signed main(){
  14. int t; cin>>t;
  15. while(t--){
  16. int r, c; cin>>r>>c;
  17. vector<vector<char>> v(r, vector<char>(c));
  18. for(int i=0; i<r; i++) for(int j=0; j<c; j++) cin>>v[i][j];
  19. int res=0;
  20. for(int i=0; i<r; i++){
  21. for(int j=0; j<c; j++){
  22. if(v[i][j]=='1'){
  23. res++;
  24. visit(v,i,j,r,c);
  25. }
  26. }
  27. }
  28. cout<<res<<endl;
  29. }
  30. return 0;
  31. }
Success #stdin #stdout 0.01s 5568KB
stdin
3
4 8
01001101
10001010
00100100
01101101
6 1
0
1
0
0
1
1
9 5
00000
10001
00110
01100
10000
00000
00101
00011
00110
stdout
8
2
6