結果
| 問題 | No.3744 XY Tiling |
| コンテスト | |
| ユーザー |
sig
|
| 提出日時 | 2026-09-19 16:07:12 |
| 言語 | PyPy3 (7.3.23 + ACL) |
| 結果 |
WA
不安定
|
| 実行時間 | - |
| コード長 | 3,072 bytes |
| 記録 | |
| コンパイル時間 | 74 ms |
| コンパイル使用メモリ | 83,408 KB |
| 実行使用メモリ | 86,388 KB |
| 最終ジャッジ日時 | 2026-09-19 16:07:27 |
| 合計ジャッジ時間 | 5,028 ms |
|
ジャッジサーバーID (参考情報) |
judge4_0 / judge2_0 |
(要ログイン)
| サブタスク | 配点 | 結果 |
|---|---|---|
| 部分点 | 60 % | AC * 19 |
| 満点 | 40 % | AC * 45 WA * 15 |
| 合計 | 5 * 60% = 300 点 |
ソースコード
h,w = map(int, input().split()) hw = 0 if h > w: hw = True h,w = w,h ans = [] h1,h2,w1,w2 = 1,h,1,w if h%4 == 1: hh = True else: hh = False an = 2 def f1(h1,h2,w1,w2,c): for i in range(w1,w2-1): ans.append([h1,i,c,h1+1,i,1]) for i in range(h1,h2-1): if h2-h1 == 4: ans.append([i,w2-1,1,i,w2,c^1]) else: ans.append([i,w2-1,c,i,w2,1]) def f2(h1,h2,w1,w2,c): for i in range(w1+2,w2+1): if(h2-h1) == 4: ans.append([h2-1,i,c,h2,i,1]) else: ans.append([h2-1,i,1,h2,i,c]) for i in range(h1+2,h2+1): ans.append([i,w1,1,i,w1+1,c]) def f44(h1,w1,c1,c2): for i in range(4): ans.append([h1+i,w1,c1,h1+i,w1+1,1]) ans.append([h1+i,w1+2,1,h1+i,w1+3,c2]) tf = True h3 = False if (h2-h1) == 0: for i in range(0,w,2): an = i//2+2 ans.append([1,i+1,i//2+1,1,i+2,i//2+2]) h2 -= 1 if (h2-h1) == 1: for i in range(w): ans.append([1,i+1,1,2,i+1,2]) h1 += 1 h2 -= 1 if (h2-h1) == 2: if (w2-w1) == 3: an = 3 ans.append([1,1,2,1,2,1]) ans.append([2,1,2,2,2,1]) ans.append([3,1,2,3,2,1]) ans.append([1,3,1,1,4,3]) ans.append([2,3,1,2,4,3]) ans.append([3,3,1,3,4,3]) h1 = h2+1 w1 = w2+1 elif (w2-w1) == 5: an = 4 ans = [[1,1,4,1,2,2],[1,5,2,1,6,3],[2,1,4,2,2,2],[2,5,2,2,6,3],[3,1,4,3,2,2],[3,5,2,3,6,3],[1,3,2,2,3,1],[1,4,2,2,4,1],[3,3,1,3,4,2]] h1 = h2+1 w1 = w2+1 else: for i in range(h1,h2+1): ans.append([i,1,4,i,2,2]) ans.append([i,w-1,2,i,w,3]) h3 = True h1 += 2 w1 += 2 w2 -= 2 an = 4 for i in range(w1,w2+1): ans.append([1,i,2,2,i,1]) while (h2-h1) >= 3 and (w2-w1) >= 3: an = 3 if (h2-h1) == 3 and (w2-w1) == 3: if tf: f44(h1,w1,2,3) else: f44(h1,w1,3,2) elif tf: f1(h1,h2,w1,w2,2) f2(h1,h2,w1,w2,3) tf = False else: f1(h1,h2,w1,w2,3) f2(h1,h2,w1,w2,2) tf = True h1 += 2 h2 -= 2 w1 += 2 w2 -= 2 if hh: if tf: c1,c2 = 2,1 else: c1,c2 = 3,1 for i in range(w1,w2,2): ans.append([h1,i,c1,h1,i+1,c2]) c1,c2 = c2,c1 h1 += 1 if (h2-h1) == 1: if tf: ans.append([h1,w2,1,h1,w2-1,2]) ans.append([h1+1,w2,1,h1+1,w2-1,2]) else: ans.append([h1,w2,1,h1,w2-1,3]) ans.append([h1+1,w2,1,h1+1,w2-1,3]) if (h2-h1) == 1: if tf: f1(h1,h2,w1,w2,2) else: f1(h1,h2,w1,w2,3) if (h2-h1) == 2: if tf: c = 3 else: c = 2 ans.append([h1,w2-1,1,h1,w2,c]) ans.append([h1+1,w2-1,1,h1+1,w2,c]) ans.append([h1+2,w2-1,1,h1+2,w2,c]) c ^= 1 w2 -= 2 for i in range(w1,w2+1): ans.append([h1,i,1,h1+1,i,c]) h1 += 2 c1,c2 = 1,c for i in range(w1,w2,2): ans.append([h1,i,c1,h1,i+1,c2]) c1,c2 = c2,c1 h1 += 2 if (h2-h1) == 0: if tf: c = 2 cc = 3 if h3: cc = 2 else: c = 3 cc = 2 if h3: cc = 3 if (w2-w1) == 1: ans.append([h1,w1,c,h1,w2,cc]) w1 += 2 else: ans.append([h1,w1,c,h1,w1+1,1]) w1 += 2 bef = 1 for i in range(w1,w2-2,2): if bef == 1: an += 1 bef = an ans.append([h1,i,1,h1,i+1,an]) else: ans.append([h1,i,an,h1,i+1,1]) bef = 1 ans.append([h1,w2-1,bef,h1,w2,cc]) h1 += 1 print(an) for i in ans: if hw: print(i[1],i[0],i[2],i[4],i[3],i[5]) else: print(*i)
sig