ログインしてください。
提出 #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)
提出情報
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 500 / 500 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| 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 |