結果

問題 No.3723 Climb or Detour
コンテスト
ユーザー sig
提出日時 2026-09-21 16:07:32
言語 PyPy3
(7.3.23 + ACL)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
AC  
実行時間 48 ms / 2,000 ms
+ 470µs
コード長 805 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 2,009 ms
コンパイル使用メモリ 81,384 KB
実行使用メモリ 76,664 KB
最終ジャッジ日時 2026-09-21 16:07:47
合計ジャッジ時間 7,872 ms
ジャッジサーバーID
(参考情報)
judge2_0 / judge5_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 58
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

n,k = map(int, input().split())
si,sj = map(int, input().split())
si -= 1
sj -= 1
gi,gj = map(int, input().split())
gi -= 1
gj -= 1
if sj > gj:
	si,sj,gi,gj = gi,gj,si,sj
if si <= gi:
	tf = True
else:
	tf = False

ans = [['.']*n for _ in range(n)]
k -= abs(si-gi) + abs(sj-gj)
cur = 0
an = [False]*(2*n)
for i in range(sj+1,gj+1):
	if cur%2 == 0 and k > 0:
		k -= 2
		if tf:
			an[si+i] = True
		else:
			an[si-i] = True
	cur += 1
if tf:
	for i in range(si+1,gi):
		if cur%2 == 0 and k > 0:
			k -= 2
			an[i+gj] = True
		cur += 1
else:
	for i in range(si-1,gi,-1):
		if cur%2 == 0 and k > 0:
			k -= 2
			an[i-gj] = True
		cur += 1
for i in range(n):
	for j in range(n):
		if tf:
			now = i+j
		else:
			now = i-j
		if an[now]:
			ans[i][j] = '#'
if k:
	print(-1)
else:
	for i in ans:
		print("".join(i))
0