結果

問題 No.3744 XY Tiling
コンテスト
ユーザー sig
提出日時 2026-09-19 16:28:37
言語 PyPy3
(7.3.23 + ACL)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
RE  
実行時間 -
コード長 3,205 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 376 ms
コンパイル使用メモリ 83,756 KB
実行使用メモリ 86,596 KB
最終ジャッジ日時 2026-09-19 16:28:44
合計ジャッジ時間 6,433 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge2_1
このコードへのチャレンジ
(要ログイン)
サブタスク 配点 結果
部分点 60 % AC * 10 RE * 9
満点 40 % AC * 19 RE * 41
合計 5 * 0% = 0 点
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

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 <= 5:
	print(a)
if h%4 == 1 and h > 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])
	if h == 5:
		for i in range(h1+2,h2+1):
			ans.append([i,w1,4,i,w1+1,1])
	else:
		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





if h == 5:
	an = 4
print(an)
for i in ans:
	if hw:
		print(i[1],i[0],i[2],i[4],i[3],i[5])
	else:
		print(*i)
0