Submission #20563184
Source Code Expand
Copy
from scipy.sparse import csr_matrixfrom scipy.sparse.csgraph import maximum_flowc2i = dict(zip("BW?", [0, 1, -1]))dij = [(-1, 0), (0, 1), (1, 0), (0, -1)]INF = 10**6def main() -> None:N = int(input())if N == 1:print(0)returnboard = [[c2i[x] for x in input()] for _ in range(N)]# reverse (i+j)%2==0for i in range(N):for j in range(N):if (i+j) % 2 == 0 and board[i][j] != -1:board[i][j] ^= 1
from scipy.sparse import csr_matrix from scipy.sparse.csgraph import maximum_flow c2i = dict(zip("BW?", [0, 1, -1])) dij = [(-1, 0), (0, 1), (1, 0), (0, -1)] INF = 10**6 def main() -> None: N = int(input()) if N == 1: print(0) return board = [[c2i[x] for x in input()] for _ in range(N)] # reverse (i+j)%2==0 for i in range(N): for j in range(N): if (i+j) % 2 == 0 and board[i][j] != -1: board[i][j] ^= 1 edges = [] source, sink = N*N, N*N + 1 w, fr, to = [], [], [] for i in range(N): for j in range(N): v = i * N + j if board[i][j] == 0: w.append(INF) fr.append(source) to.append(v) elif board[i][j] == 1: w.append(INF) fr.append(v) to.append(sink) for di, dj in dij: ni, nj = i+di, j+dj if ni < 0 or N <= ni or nj < 0 or N <= nj: continue nv = ni * N + nj w.append(1) fr.append(v) to.append(nv) graph = csr_matrix((w, (fr, to)), shape=(N*N+2, N*N+2)) print(2 * N * (N - 1) - maximum_flow(graph, source, sink).flow_value) if __name__ == '__main__': main()
Submission Info
Submission Time | |
---|---|
Task | F - Zebraness |
User | n_knuu |
Language | Python (3.8.2) |
Score | 600 |
Code Size | 1382 Byte |
Status | AC |
Exec Time | 1783 ms |
Memory | 45240 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 600 / 600 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | 01_sample.txt, 02_sample.txt, 03_sample.txt |
All | 01_sample.txt, 02_sample.txt, 03_sample.txt, 04_hand.txt, 05_hand.txt, 06_small.txt, 07_small.txt, 08_small.txt, 09_small.txt, 10_small.txt, 11_small.txt, 12_small.txt, 13_small.txt, 14_small.txt, 15_small.txt, 16_small.txt, 17_small.txt, 18_large.txt, 19_large.txt, 20_large.txt, 21_large.txt, 22_large.txt, 23_large.txt, 24_large.txt, 25_large.txt, 26_large.txt, 27_large.txt, 28_max.txt, 29_max.txt, 30_max.txt, 31_max.txt, 32_max.txt, 33_max.txt, 34_max.txt, 35_max.txt, 36_max.txt, 37_max.txt, 38_max.txt, 39_max.txt, 40_max.txt, 41_max.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
01_sample.txt | AC | 178 ms | 37724 KB |
02_sample.txt | AC | 167 ms | 37732 KB |
03_sample.txt | AC | 166 ms | 37712 KB |
04_hand.txt | AC | 168 ms | 37192 KB |
05_hand.txt | AC | 166 ms | 37240 KB |
06_small.txt | AC | 167 ms | 38052 KB |
07_small.txt | AC | 168 ms | 37496 KB |
08_small.txt | AC | 168 ms | 37756 KB |
09_small.txt | AC | 171 ms | 38012 KB |
10_small.txt | AC | 171 ms | 37860 KB |
11_small.txt | AC | 174 ms | 37924 KB |
12_small.txt | AC | 166 ms | 37792 KB |
13_small.txt | AC | 170 ms | 37784 KB |
14_small.txt | AC | 170 ms | 38196 KB |
15_small.txt | AC | 167 ms | 37736 KB |
16_small.txt | AC | 165 ms | 37876 KB |
17_small.txt | AC | 164 ms | 37736 KB |
18_large.txt | AC | 440 ms | 40668 KB |
19_large.txt | AC | 336 ms | 39896 KB |
20_large.txt | AC | 168 ms | 37904 KB |
21_large.txt | AC | 790 ms | 42240 KB |
22_large.txt | AC | 258 ms | 40064 KB |
23_large.txt | AC | 590 ms | 41508 KB |
24_large.txt | AC | 677 ms | 43300 KB |
25_large.txt | AC | 621 ms | 42396 KB |
26_large.txt | AC | 921 ms | 43864 KB |
27_large.txt | AC | 1338 ms | 43856 KB |
28_max.txt | AC | 1713 ms | 44316 KB |
29_max.txt | AC | 1433 ms | 44712 KB |
30_max.txt | AC | 1278 ms | 44060 KB |
31_max.txt | AC | 1659 ms | 45040 KB |
32_max.txt | AC | 1662 ms | 45008 KB |
33_max.txt | AC | 205 ms | 43164 KB |
34_max.txt | AC | 215 ms | 45240 KB |
35_max.txt | AC | 1741 ms | 45192 KB |
36_max.txt | AC | 596 ms | 44028 KB |
37_max.txt | AC | 847 ms | 44320 KB |
38_max.txt | AC | 1323 ms | 44100 KB |
39_max.txt | AC | 1753 ms | 44784 KB |
40_max.txt | AC | 1747 ms | 45200 KB |
41_max.txt | AC | 1783 ms | 44744 KB |