Submission #20563184


Source Code Expand

Copy
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
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
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
AC × 3
AC × 41
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


2025-04-08 (Tue)
10:34:05 +00:00