結果
| 問題 | No.3666 League of Jigsaw |
| コンテスト | |
| ユーザー |
sepa38
|
| 提出日時 | 2026-08-30 08:47:03 |
| 言語 | PyPy3 (7.3.23) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,282 bytes |
| 記録 | |
| コンパイル時間 | 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 |
ソースコード
# 想定誤答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
# ------------------------------------------------------------------
sepa38