File tree Expand file tree Collapse file tree 1 file changed +61
-0
lines changed Expand file tree Collapse file tree 1 file changed +61
-0
lines changed Original file line number Diff line number Diff line change 1+ n , m = map (int , input ().split ())
2+
3+ arr = []
4+ temp = [[0 ] * m for _ in range (n )]
5+ result = 0
6+
7+ dx = [- 1 , 1 , 0 , 0 ]
8+ dy = [0 , 0 , - 1 , 1 ]
9+
10+ for i in range (n ):
11+ arr .append (list (map (int , input ().split ())))
12+
13+
14+
15+ def dfs (count ):
16+ global result
17+
18+ if count == 3 :
19+ for i in range (n ):
20+ for j in range (m ):
21+ temp [i ][j ] = arr [i ][j ]
22+
23+ for i in range (n ):
24+ for j in range (m ):
25+ if temp [i ][j ] == 2 :
26+ virus (i , j )
27+
28+ result = max (result , get_score ())
29+ return
30+
31+ for i in range (n ):
32+ for j in range (m ):
33+ if arr [i ][j ] == 0 :
34+ arr [i ][j ] = 1
35+ count += 1
36+ dfs (count )
37+ arr [i ][j ] = 0
38+ count -= 1
39+
40+
41+ def virus (x , y ):
42+ for i in range (4 ):
43+ nx = x + dx [i ]
44+ ny = y + dy [i ]
45+ if 0 <= nx < n and 0 <= ny < m :
46+ if temp [nx ][ny ] == 0 :
47+ temp [nx ][ny ] = 2
48+ virus (nx , ny )
49+
50+
51+ def get_score ():
52+ score = 0
53+ for i in range (n ):
54+ for j in range (m ):
55+ if temp [i ][j ] == 0 :
56+ score += 1
57+ return score
58+
59+
60+ dfs (0 )
61+ print (result )
You can’t perform that action at this time.
0 commit comments