Submission #791871

#TimeUsernameProblemLanguageResultExecution timeMemory
791871BoomydayBitaro the Brave (JOI19_ho_t1)Pypy 3
50 / 100
1095 ms241240 KiB
H, W = map(int, input().split())

grid = []

for i in range(H):
    st = list(input())
    for j in range(W):
        if st[j] == "J":
            st[j] = 0
        elif st[j] == "O":
            st[j] = 1
        elif st[j] == "I":
            st[j] = 2

    grid.append(st)


## grid[h][w]

grido = [[0 for i in range(W+1)] for j in range(H+1)] ## rows
gridi = [[0 for i in range(W+1)] for j in range(H+1)] ## cols



## o

for row in range(H):
    for col in range(W-1, -1, -1):

        num = (grid[row][col] == 1)
        grido[row][col] = grido[row][col+1] + num

## i
for col in range(W):
    for row in range(H-1, -1, -1):
        num = (grid[row][col] == 2)
        gridi[row][col] = gridi[row+1][col] + num

ans = 0

for row in range(H):
    for col in range(W):
        if grid[row][col] == 0:
            ans += grido[row][col+1] * gridi[row+1][col]

print(ans)
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...