์๊ฐ ์ ํ | ๋ฉ๋ชจ๋ฆฌ ์ ํ | ์ ๋ต ๋น์จ |
2 ์ด | 512 MB | 54.661 % |
14502๋ฒ: ์ฐ๊ตฌ์
์ธ์ฒด์ ์น๋ช ์ ์ธ ๋ฐ์ด๋ฌ์ค๋ฅผ ์ฐ๊ตฌํ๋ ์ฐ๊ตฌ์์์ ๋ฐ์ด๋ฌ์ค๊ฐ ์ ์ถ๋์๋ค. ๋คํํ ๋ฐ์ด๋ฌ์ค๋ ์์ง ํผ์ง์ง ์์๊ณ , ๋ฐ์ด๋ฌ์ค์ ํ์ฐ์ ๋ง๊ธฐ ์ํด์ ์ฐ๊ตฌ์์ ๋ฒฝ์ ์ธ์ฐ๋ ค๊ณ ํ๋ค. ์ฐ๊ตฌ์๋ ํฌ๊ธฐ๊ฐ N×M์ธ ์ง์ฌ๊ฐํ์ผ๋ก ๋ํ๋ผ ์ ์์ผ๋ฉฐ, ์ง์ฌ๊ฐํ์ 1×1 ํฌ๊ธฐ์ ์ ์ฌ๊ฐํ์ผ๋ก ๋๋์ด์ ธ ์๋ค. ์ฐ๊ตฌ์๋ ๋น ์นธ, ๋ฒฝ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ, ๋ฒฝ์ ์นธ ํ๋๋ฅผ ๊ฐ๋ ์ฐจ์งํ๋ค. ์ผ๋ถ ์นธ์ ๋ฐ์ด๋ฌ์ค๊ฐ ์กด์ฌํ๋ฉฐ, ์ด ๋ฐ์ด๋ฌ์ค๋ ์ํ์ข์ฐ๋ก ์ธ์ ํ ๋น ์นธ์ผ๋ก ๋ชจ๋ ํผ์ ธ๋๊ฐ ์ ์๋ค.
www.acmicpc.net
0 : ๋น ์นธ 1 : ๋ฒฝ 2 : ๋ฐ์ด๋ฌ์ค
๋ก ๋ํ๋ด๋ฉฐ, ๋ฐ์ด๋ฌ์ค๊ฐ ํผ์ ๋๊ฐ๋ ๊ฒ์ ๋ง๊ธฐ์ํด 3๊ฐ์ ๋ฒฝ์ ์ธ์์ผ ํ๋ค.
์ด ๋ 0์ธ ๋ถ๋ถ์ ์์ ์์ญ์ด๋ผํ๊ณ ์์ ์์ญ ํฌ๊ธฐ์ ์ต๋๊ฐ์ ๊ตฌํ๋ ๊ฒ์ด๋ค.
์ฒ์ ์์ด๋์ด๋ 2๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฒฝ์ ํ๋์ฉ ์ธ์๋ณผ๊น ํ๋ค๊ฐ ์ด์จ๋ ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ๋ค ๋ด์ผํ๋ฏ๋ก 0 ์ธ ์นธ๋ค์ ๋ชจ๋ ํ์ํ์ฌ ๋ฒฝ์ ์ธ์ฐ๋ ๋ฐฉ๋ฒ์ ์๊ฐํ๋ค.
๋ฉ๋ชจ๋ฆฌ | ์๊ฐ |
1180 KB | 44 ms |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
#include<algorithm>
#include<vector>
#include<queue>
using namespace std;
typedef pair<int, int> p;
int di[] = { 0,0,1,-1 };
int dj[] = { 1,-1,0,0 };
int n, m;
int lab[10][10];
int copylab[10][10];
vector<p> v;
void dfs(int r, int c) {
for (int i = 0; i < 4; i++) {
int nextr = r + di[i];
int nextc = c + dj[i];
if (nextr >= 0 || nextr < n || nextc >= 0 || nextc < m) {
if (copylab[nextr][nextc] == 0) {
copylab[nextr][nextc] = 2;
dfs(nextr, nextc);
}
}
}
}
int main() {
scanf("%d %d", n, m);
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
scanf("%d", lab[i][j]);
copylab[i][j] = lab[i][j];
if (!lab[i][j]) v.push_back({ i,j });
}
}
int Max = 0;
for (int i = 0; i < v.size() - 2; i++) {
for (int j = i + 1; j < v.size() - 1; j++) {
for (int k = j + 1; k < v.size(); k++) {
p one = v[i];
p two = v[j];
p three = v[k];
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
copylab[i][j] = lab[i][j];
}
}
copylab[one.first][one.second] = 1;
copylab[two.first][two.second] = 1;
copylab[three.first][three.second] = 1;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (copylab[i][j] == 2)
dfs(i, j);
}
}
int cnt = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (copylab[i][j] == 0)
cnt++;
}
}
Max = max(Max, cnt);
}
}
}
printf("%d", Max);
return 0;
}
|
cs |
'๐ฅ PS(Problem Solving) ๐ฅ > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] #1541 ์์ด๋ฒ๋ฆฐ ๊ดํธ (0) | 2019.09.04 |
---|---|
[BOJ] #2573 ๋น์ฐ (0) | 2019.09.04 |
[BOJ] #2667 ๋จ์ง๋ฒํธ๋ถ์ด๊ธฐ (0) | 2019.09.04 |
[BOJ] #2644 ์ด์๊ณ์ฐ (0) | 2019.09.04 |
[BOJ] #6603 ๋ก๋ (0) | 2019.09.04 |
๋๊ธ