結果

問題 No.5005 3-SAT
ユーザー Sor4chi
提出日時 2025-05-13 09:46:09
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
AC  
実行時間 37 ms / 2,000 ms
コード長 1,328 bytes
コンパイル時間 464 ms
コンパイル使用メモリ 12,160 KB
実行使用メモリ 10,880 KB
スコア 17,782
最終ジャッジ日時 2025-05-13 09:46:18
合計ジャッジ時間 8,812 ms
ジャッジサーバーID
(参考情報)
judge2 / judge5
純コード判定しない問題か言語
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 100
権限があれば一括ダウンロードができます

ソースコード

diff #

import sys


def solve_case(constraints):
    bits = [None] * 256

    for i in range(len(constraints)):
        a, b, c, p, q, r = constraints[i]
        targets = [
            (a, p),
            (b, q),
            (c, r),
        ]

        satisfied = False
        for pos, val in targets:
            if pos >= 256:
                continue
            if bits[pos] is None:
                continue
            if bits[pos] == val:
                satisfied = True
                break

        if not satisfied:
            for pos, val in targets:
                if pos >= 256:
                    continue
                if bits[pos] is None:
                    bits[pos] = val
                    satisfied = True
                    break

        if not satisfied:
            break

    return "".join(str(b if b is not None else 0) for b in reversed(bits))


def read_constraints():
    constraints = []
    N = 2048
    for _ in range(N):
        line = sys.stdin.readline()
        if not line or len(line.split()) != 6:
            break
        a, b, c, p, q, r = map(int, line.split())
        constraints.append((a, b, c, p, q, r))
    return constraints


def main():
    constraints = read_constraints()
    result = solve_case(constraints)
    print(result)


if __name__ == "__main__":
    main()
0