提出 #25857657


ソースコード 拡げる

# -*- coding: utf-8 -*-
"""
012 - Red Painting(★4)
https://atcoder.jp/contests/typical90/tasks/typical90_l

"""
import sys


class DisjointSet(object):
    def __init__(self, n):
        self.rank = [0] * n
        self.p = list(range(n))
        self.size = [1] * n

    def same(self, x, y):
        return self.findSet(x) == self.findSet(y)

    def unite(self, x, y):
        self.link(self.findSet(x), self.findSet(y))

    def link(self, x, y):
        if self.rank[x] > self.rank[y]:
            self.size[self.p[x]] += self.size[self.p[y]]
            self.p[y] = self.findSet(x)
        else:
            self.size[self.p[y]] += self.size[self.p[x]]
            self.p[x] = self.findSet(y)
            if self.rank[x] == self.rank[y]:
                self.rank[y] += 1

    def findSet(self, x):
        if x != self.p[x]:
            self.p[x] = self.findSet(self.p[x])
        return self.p[x]


def solve(H, W):
    d = DisjointSet(H * W)
    Q = int(input())
    reds = set()
    for _ in range(Q):
        cmd, *others = input().split()
        if cmd == '1':
            r, c = map(int, others)
            r, c, = r-1, c-1
            reds.add((r, c))
            for nr, nc in ((r-1, c), (r+1, c), (r, c-1), (r, c+1)):
                if (nr, nc) in reds:
                    d.unite(r*W+c, nr*W+nc)
        else:
            ra, ca, rb, cb = map(int, others)
            ra, ca, rb, cb = ra-1, ca-1, rb-1, cb-1
            res = d.same(ra*W+ca, rb*W+cb) if (ra, ca) in reds and (rb, cb) in reds else False
            print('Yes' if res else 'No')


def main(args):
    H, W = map(int, input().split())
    solve(H, W)


if __name__ == '__main__':
    main(sys.argv[1:])

提出情報

提出日時
問題 012 - Red Painting(★4)
ユーザ kichi
言語 Python (3.8.2)
得点 4
コード長 1759 Byte
結果 AC
実行時間 885 ms
メモリ 240436 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 4 / 4
結果
AC × 3
AC × 43
セット名 テストケース
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt, subtask_1_26.txt, subtask_1_27.txt, subtask_1_28.txt, subtask_1_29.txt, subtask_1_30.txt, subtask_1_31.txt, subtask_1_32.txt, subtask_1_33.txt, subtask_1_34.txt, subtask_1_35.txt, subtask_1_36.txt, subtask_1_37.txt, subtask_1_38.txt, subtask_1_39.txt, subtask_1_40.txt
ケース名 結果 実行時間 メモリ
sample_01.txt AC 19 ms 9144 KiB
sample_02.txt AC 20 ms 9128 KiB
sample_03.txt AC 21 ms 9116 KiB
subtask_1_01.txt AC 514 ms 9212 KiB
subtask_1_02.txt AC 250 ms 58732 KiB
subtask_1_03.txt AC 345 ms 54888 KiB
subtask_1_04.txt AC 576 ms 145112 KiB
subtask_1_05.txt AC 400 ms 39284 KiB
subtask_1_06.txt AC 173 ms 9276 KiB
subtask_1_07.txt AC 634 ms 28856 KiB
subtask_1_08.txt AC 538 ms 78740 KiB
subtask_1_09.txt AC 208 ms 33424 KiB
subtask_1_10.txt AC 313 ms 19712 KiB
subtask_1_11.txt AC 219 ms 74912 KiB
subtask_1_12.txt AC 70 ms 24604 KiB
subtask_1_13.txt AC 211 ms 39076 KiB
subtask_1_14.txt AC 285 ms 26444 KiB
subtask_1_15.txt AC 476 ms 94804 KiB
subtask_1_16.txt AC 452 ms 158792 KiB
subtask_1_17.txt AC 563 ms 98188 KiB
subtask_1_18.txt AC 97 ms 13916 KiB
subtask_1_19.txt AC 394 ms 28740 KiB
subtask_1_20.txt AC 481 ms 48532 KiB
subtask_1_21.txt AC 692 ms 189636 KiB
subtask_1_22.txt AC 126 ms 110544 KiB
subtask_1_23.txt AC 281 ms 85292 KiB
subtask_1_24.txt AC 451 ms 86932 KiB
subtask_1_25.txt AC 358 ms 42268 KiB
subtask_1_26.txt AC 82 ms 36324 KiB
subtask_1_27.txt AC 474 ms 18272 KiB
subtask_1_28.txt AC 549 ms 17324 KiB
subtask_1_29.txt AC 535 ms 17384 KiB
subtask_1_30.txt AC 559 ms 17924 KiB
subtask_1_31.txt AC 485 ms 14808 KiB
subtask_1_32.txt AC 597 ms 18668 KiB
subtask_1_33.txt AC 668 ms 20236 KiB
subtask_1_34.txt AC 829 ms 240436 KiB
subtask_1_35.txt AC 839 ms 233160 KiB
subtask_1_36.txt AC 885 ms 234272 KiB
subtask_1_37.txt AC 801 ms 230416 KiB
subtask_1_38.txt AC 789 ms 229956 KiB
subtask_1_39.txt AC 847 ms 234292 KiB
subtask_1_40.txt AC 872 ms 235112 KiB