Submission #8830119


Source Code Expand

import sys

input=sys.stdin.readline
sys.setrecursionlimit(10 ** 6)
int1 = lambda x: int(x) - 1
p2D = lambda x: print(*x, sep="\n")
def MI(): return map(int, sys.stdin.readline().split())
def LI(): return list(map(int, sys.stdin.readline().split()))
def LLI(rows_number): return [LI() for _ in range(rows_number)]

def main():
    h, w = MI()
    s = [[c == "#" for c in input()[:-1]] for _ in range(h)]
    if w == 2:
        s = [list(sc) for sc in zip(*s)]
        h, w = w, h
    # p2D(s)
    t = [[-1] * (w - 1) for _ in range(h - 1)]
    for i in range(h - 1):
        si = s[i]
        si1 = s[i + 1]
        t[i] = [1 - (sum(si[j:j + 2]) + sum(si1[j:j + 2])) % 2 for j in range(w - 1)]
    # p2D(t)
    # print()
    ti=t[0]
    for i in range(1, h - 1):
        ti1=ti
        ti=t[i]
        for j in range(w - 1):
            if ti[j]: ti[j] = ti1[j] + 1
    # p2D(t)
    ans = 0
    for i in range(h - 1):
        jtol = [0] * (w - 1)
        jtor = [0] * (w - 1)
        ti=t[i]
        # 高さ、位置の順
        stack = [[-1, 0]]
        for j in range(w - 1):
            h=ti[j]
            while stack[-1][0] >= h: stack.pop()
            jtol[j] = stack[-1][1]
            stack.append([h, j + 1])

        stack = [[-1, w - 1]]
        for j in range(w - 2, -1, -1):
            h=ti[j]
            while stack[-1][0] >= h: stack.pop()
            jtor[j] = stack[-1][1]
            stack.append([h, j])

        for j in range(w - 1):
            tmp = (jtor[j] - jtol[j] + 1) * (ti[j] + 1)
            if tmp > ans: ans = tmp
    print(max(ans,h,w))

main()

Submission Info

Submission Time
Task F - Flip and Rectangles
User mkawa2
Language PyPy3 (2.4.0)
Score 0
Code Size 1642 Byte
Status WA
Exec Time 1925 ms
Memory 134024 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 700
Status
AC × 3
AC × 39
WA × 1
Set Name Test Cases
Sample sample1.txt, sample2.txt, sample3.txt
All sample1.txt, sample2.txt, sample3.txt, 1.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 2.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 3.txt, 30.txt, 31.txt, 32.txt, 33.txt, 34.txt, 4.txt, 5.txt, 6.txt, 7.txt, 8.txt, 9.txt, sample1.txt, sample2.txt, sample3.txt
Case Name Status Exec Time Memory
1.txt AC 216 ms 42992 KB
10.txt AC 1817 ms 132744 KB
11.txt AC 1035 ms 103260 KB
12.txt AC 1690 ms 129160 KB
13.txt AC 1691 ms 131080 KB
14.txt AC 1725 ms 131336 KB
15.txt AC 1781 ms 132104 KB
16.txt AC 1715 ms 131592 KB
17.txt AC 1708 ms 131848 KB
18.txt AC 1890 ms 132616 KB
19.txt AC 1781 ms 131848 KB
2.txt AC 203 ms 41584 KB
20.txt AC 1776 ms 131464 KB
21.txt AC 1826 ms 134024 KB
22.txt AC 1743 ms 132232 KB
23.txt AC 1799 ms 131720 KB
24.txt AC 1661 ms 129288 KB
25.txt AC 1706 ms 129032 KB
26.txt AC 1925 ms 133000 KB
27.txt AC 1809 ms 132360 KB
28.txt AC 1799 ms 133128 KB
29.txt AC 1739 ms 130824 KB
3.txt WA 1875 ms 133128 KB
30.txt AC 1730 ms 130824 KB
31.txt AC 1687 ms 130568 KB
32.txt AC 1715 ms 130824 KB
33.txt AC 1715 ms 130568 KB
34.txt AC 1847 ms 130956 KB
4.txt AC 1798 ms 132232 KB
5.txt AC 207 ms 43100 KB
6.txt AC 189 ms 41072 KB
7.txt AC 1857 ms 132488 KB
8.txt AC 1914 ms 133000 KB
9.txt AC 1868 ms 131720 KB
sample1.txt AC 170 ms 38256 KB
sample2.txt AC 172 ms 38256 KB
sample3.txt AC 173 ms 38256 KB