# def dfs(k, p):
# global arr
# if k<0 or p<0 or k>9 or p>9 or arr[k][p]=='*':
# return
# arr[k][p]='*'
# dfs(k+1, p)
# dfs(k, p+1)
# dfs(k-1, p)
# dfs(k, p-1)
# arr=[]
# for i in range(10):
# b=list(input())
# arr.append(b)
# x, y=map(int, input().split())
#
# dfs(y, x)
#
# for i in range(10):
# for j in range(10):
# print(arr[i][j],end='')
# print()
# def dfs(k, p):
# global arr, n
# if k<0 or p<0 or k>n-1 or p>n-1 or arr[k][p]!=0:
# return
# sum+=1
# arr[k][p]=sum
# dfs(k+1, p)
# dfs(k, p+1)
# dfs(k-1, p)
# dfs(k, p-1)
#
# arr=[]
# n=int(input())
#
# for i in range(n+1):
# b=[0]*(n+1)
# arr.append(b)
#
#
# x, y=map(int, input().split())
# sum=0
# dfs(x-1, y-1)
#
# for i in range(n):
# for j in range(n):
# print(arr[i][j], end=' ')
# print()
# if k+1<n and arr[k+1][p]==0:
# arr[k+1][p]=arr[k][p]+1
# dfs(k+1, p)
# if p+1<n and arr[k][p+1]==0:
# arr[k][p+1]=arr[k][p]+1
# dfs(k, p+1)
# if k-1>=0 and arr[k-1][p]==0:
# arr[k-1][p]=arr[k][p]+1
# dfs(k-1, p)
# if p-1>=0 and arr[k][p-1]==0:
# arr[k][p-1]=arr[k][p]+1
# dfs(k, p-1)
def push(l, o):
global queue, back, n, arr, sum
if l < 0 or o < 0 or l > n-1 or o > n-1:
return
arr[l][o] = sum
back += 1
queue[0][back] = l
queue[1][back] = o
def pop():
global front, r
front += 1
return queue[0][front]
def pup():
global s
return queue[1][front]
sum = 2
back = -1
front = -1
queue = []
arr = []
n = int(input())
for i in range(2):
b = [0]*100
queue.append(b)
for i in range(n):
c = [0]*n
arr.append(c)
x, y = map(int, input().split())
k = x-1
p = y-1
arr[k][p] = 1
back += 1
queue[0][back] = k
queue[1][back] = p
while back != front:
w = back
for i in range(front+1, back+1):
r = pop()
s = pup()
push(r+1, s)
push(r, s+1)
push(r-1, s)
push(r, s-1)
sum += 1
for i in range(n):
for j in range(n):
print(arr[i][j], end=' ')
top of page

실제 작동 상태를 확인하려면 라이브 사이트로 이동하세요.
251010
251010
댓글 0개
좋아요
댓글(0)
bottom of page