提出 #17307568


ソースコード 拡げる

import sys
def input():
    return sys.stdin.readline()[:-1]
H,W=map(int,input().split())
S=["#"*(W+2)]+["#"+input()+"#" for i in range(H)]+["#"*(W+2)]
pr=10**9+7
l=[[0]*(W+2) for i in range(H+2)]
for i in range(1,H+1):
    s=-1
    for j in range(1,W+2):
        if S[i][j]=="#":
            if s>=0:
                for k in range(s,j):
                    l[i][k]=j-s
            s=j+1
        else:
            if s<0:
                s=j
for i in range(1,W+1):
    s=-1
    for j in range(1,H+2):
        if S[j][i]=="#":
            if s>=0:
                for k in range(s,j):
                    l[k][i]+=j-s-1
            s=j+1
        else:
            if s<0:
                s=j
K=0
for i in S:
    K+=i.count(".")
p=pow(2,K,pr)
sl=[0]*(K+1)
t=1
for i in range(K,0,-1):
    sl[i]=(p-t)%pr
    t=t*2%pr
a=0
for i in l:
    for j in i:
        a=(sl[j]+a)%pr
print(a)

提出情報

提出日時
問題 E - Lamps
ユーザ jotp
言語 PyPy3 (7.3.0)
得点 500
コード長 920 Byte
結果 AC
実行時間 400 ms
メモリ 135320 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 500 / 500
結果
AC × 2
AC × 19
セット名 テストケース
Sample 01.txt, 02.txt
All 01.txt, 02.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, B02.txt, B11.txt, B12.txt, B13.txt, B14.txt, B15.txt, B16.txt
ケース名 結果 実行時間 メモリ
01.txt AC 62 ms 62032 KiB
02.txt AC 48 ms 62132 KiB
11.txt AC 295 ms 135320 KiB
12.txt AC 287 ms 134352 KiB
13.txt AC 400 ms 124140 KiB
14.txt AC 78 ms 68780 KiB
15.txt AC 84 ms 69952 KiB
16.txt AC 215 ms 105244 KiB
17.txt AC 103 ms 80696 KiB
18.txt AC 277 ms 135020 KiB
19.txt AC 312 ms 134108 KiB
20.txt AC 351 ms 127332 KiB
B02.txt AC 54 ms 62104 KiB
B11.txt AC 72 ms 68392 KiB
B12.txt AC 65 ms 68112 KiB
B13.txt AC 71 ms 68676 KiB
B14.txt AC 61 ms 68056 KiB
B15.txt AC 72 ms 68240 KiB
B16.txt AC 68 ms 68520 KiB