結果

問題 No.3666 League of Jigsaw
コンテスト
ユーザー sepa38
提出日時 2026-08-30 08:47:03
言語 PyPy3
(7.3.23)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
WA  
実行時間 -
コード長 1,282 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 267 ms
コンパイル使用メモリ 95,984 KB
実行使用メモリ 154,112 KB
最終ジャッジ日時 2026-08-30 13:06:57
合計ジャッジ時間 2,461 ms
ジャッジサーバーID
(参考情報)
judge1_0 / judge3_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 4 WA * 2
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

# 想定誤答2: l の下限 (k <= l) を忘れている
#
# 「l の上限は 5k+2o」だけを実装し、対称な条件である
# 「j の上限は 5k+2o」= 「l の下限は k」を落としている。
import sys


def solve(l, j, o):
    s = l + j - 2 * o
    if s < 0 or s % 6:
        return False
    k = s // 6
    if l > 5 * k + 2 * o:          # 上限だけチェック
        return False
    if o == 0 and (l % 2 or j % 2):
        return False
    return True


def main():
    data = sys.stdin.buffer.read().split()
    t = int(data[0])
    out = []
    idx = 1
    for _ in range(t):
        l = int(data[idx]); j = int(data[idx + 1]); o = int(data[idx + 2])
        idx += 3
        out.append("Yes" if solve(l, j, o) else "No")
    sys.stdout.write("\n".join(out) + "\n")


main()

# ------------------------------------------------------------------
# Hack ケース
#
# 1
# 0 6 0
#
# 正解: No   / この解法: Yes
#
# k = 1、l = 0 <= 5 かつ l, j ともに偶数なので Yes になるが、
# l >= k = 1 が必要 (対称に見ると j = 6 > 5k+2o = 5)。
# 実際 3x8 を J 字 6 個だけで敷き詰めることはできない。
#
# 同種のケース: 1 13 1 / 0 12 0 / 2 22 0
# ------------------------------------------------------------------
0