ამოხსნების სტატუსი

ამ გვერდზე თქვენ იხილავთ გაგზავნილი ამოხსნების სტატუსს.


გაგზავნის თარიღი: 14.09.2021 21:38:47

ამოცანა: გუბურების დათვლა

მომხმარებელი: rati_123123

ვერდიქტი: სრული ამოხსნა

შეფასება: 100.0 ქულა







#include <bits/stdc++.h>
using namespace std;

const int max_h = 100;
const int max_w = 100;

int** createMatrix(int rows, int cols){
	int** matrix = new int*[rows];
	for (int i = 0; i < rows; i++){
		matrix[i] = new int[cols];
		for(int j = 0 ; j < cols; j++){
			matrix[i][j] = 0;
		}
	}
	return matrix;
}

void removeMatrix(int rows, int cols, int** matrix){
	for(int i = 0 ; i < rows ; i++){
		delete[] matrix[i];
	}
	delete[] matrix;
}

bool inBorders(int rows, int cols, int i, int j){
	return i >= 0 && j >= 0 && i < rows && j < cols;
}

bool isValid(string* board, int i, int j){
	return board[i][j] != '.';
}

void runDFS(int i, int j, int** visited, string* board,int rows, int cols){
	visited[i][j] = 1;
	for(int x = -1;x<=1;x++){
		for(int y = -1;y<=1;y++){
			if(x==0&&y==0) continue;
			if(!inBorders(rows,cols,i+x,j+y)) continue;
			if(!isValid(board,i+x,j+y)) continue;
			if(visited[i+x][j+y]) continue;
			runDFS(i+x,j+y,visited,board,rows,cols);
		}
	}
}

int solve(int h, int w, string* board){
	int res = 0;
	int** visited = createMatrix(h,w) ;
	
	for(int i = 0; i < h ;i++){
		for(int j = 0 ; j < w; j++ ){
			if(!isValid(board,i,j)) continue;
			if(!visited[i][j]){
			//	cout << i << " " << j << endl;
				res++;
				runDFS(i,j,visited,board,h,w);
			}
		}
	}
	removeMatrix(h,w,visited);
	return res;
}

int main(){
	int height;
	int width;
	cin >> height >> width;
	string* board = new string[height];
	for(int i = 0; i < height;i++){
		cin >> board[i];
	}
	
	cout << solve(height,width,board) << endl;
	
	delete[] board;
}

ტესტები

შემავალი მონაცემები
10 12
W........WW.
.WWW.....WWW
....WW...WW.
.........WW.
.........W..
..W......W..
.W.W.....WW.
W.W.W.....W.
.W.W......W.
..W.......W.
გამომავალი მონაცემები
3
თქვენი პასუხი
3
ჩეკერის პასუხი
YES
შემავალი მონაცემები
4 4
....
....
....
....
გამომავალი მონაცემები
0
თქვენი პასუხი
0
ჩეკერის პასუხი
YES
შემავალი მონაცემები
1 1
W
გამომავალი მონაცემები
1
თქვენი პასუხი
1
ჩეკერის პასუხი
YES
შემავალი მონაცემები
20 20
W.W.W.W.W.W.W.W.W.W.
.W.W.W.W.W.W.W.W.W.W
W.W.W.W.W.W.W.W.W.W.
.W.W.W.W.W.W.W.W.W.W
W.W.W.W.W.W.W.W.W.W.
.W.W.W.W.W.W.W.W.W.W
W.W.W.W.W.W.W.W.W.W.
.W.W.W.W.W.W.W.W.W.W
W.W.W.W.W.W.W.W.W.W.
.W.W.W.W.W.W.W.W.W.W
W.W.W.W.W.W.W.W.W.W.
.W.W.W....
გამომავალი მონაცემები
1
თქვენი პასუხი
1
ჩეკერის პასუხი
YES
შემავალი მონაცემები
12 20
....WWWW.......WW...
...WW..WW..WWWWW..W.
..WWW.....WW..WW..WW
..WW.....WWWWW.WW.WW
..W...W....W...W.W..
..W...W....WWW.W.W..
........WW.....W.W..
WWWWWW.W..W..WW..WW.
WWWWWW..WW..WW..WWWW
.....W..W..W....W...
WWW.WWW..W..W..W..WW
.WW..W....
გამომავალი მონაცემები
7
თქვენი პასუხი
7
ჩეკერის პასუხი
YES
შემავალი მონაცემები
30 30
...........W.W....W.W......WWW
..WWWW..WWW.....W.....W....W.W
..W.......W.......W.W.WW......
.W...WW.W.......W......WW.....
..WWW.............W......WW...
.W...W.......W..W.W.W.....W...
...WW..W..WWW...WW............
W........W.......W...W..W...
გამომავალი მონაცემები
46
თქვენი პასუხი
46
ჩეკერის პასუხი
YES
შემავალი მონაცემები
30 45
W....WW...WW.W....W.WW.....WWW..WWWWW.WWWW...
.WWWW..W....W.WW.WWW...W.W....W.WW.W.WW.....W
.W.W.WW.W....W..W.W...WWW.......WWW........W.
.W.W......WWW..WW...W....W..W.WW.W.W.....WW..
...WW..W.WWWW...WW............W.W...W..W.....
..W...W..W.W.W...
გამომავალი მონაცემები
38
თქვენი პასუხი
38
ჩეკერის პასუხი
YES
შემავალი მონაცემები
75 50
W....WW...WW.W....W.WW.....WWW..WWWWW.WWWW....WWWW
..W....W.WW.WWW...W.W....W.WW.W.WW.....W.W.W.WW.W.
...W..W.W...WWW.......WWW........W..W.W......WWW..
WW...W....W..W.WW.W.W.....WW.....WW..W.WWWW...WW..
..........W.W...W..W.......W...W..W.W.W.....
გამომავალი მონაცემები
73
თქვენი პასუხი
73
ჩეკერის პასუხი
YES
შემავალი მონაცემები
100 100
...........W.W..............W...WWW...WW............W.........W...............W.W..........W...W..W.
......W...............W.W....................W......................W.....................W......W..
...............................W..............
გამომავალი მონაცემები
648
თქვენი პასუხი
648
ჩეკერის პასუხი
YES
შემავალი მონაცემები
100 100
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW...
გამომავალი მონაცემები
1
თქვენი პასუხი
1
ჩეკერის პასუხი
YES