답안 #83469

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
83469 2018-11-08T07:52:30 Z charlies_moo Spirale (COCI18_spirale) PyPy
80 / 80
570 ms 21004 KB
n, m, k = map(int, raw_input().split())
s = max(m,n)
inf = (s*2)**3+s
arr = [[inf for i in range(m+2)] for i in range(n+2)]


def print_arr():
    for i in range(1, n+1):
        for j in range(1, m+1):
            print arr[i][j],
        print



def spiral(x, y, d):
    if d == 0:
        d = 1
    else:
        d = -1
    num = 1
    arr[x][y] = num
    times = 1
    length = 1
    t = -1
    while times < n * m:
        for i in range(1,length+1):
            num += 1
            x += t
            if x <= 0 or x >= n + 1 or y <= 0 or y >= m + 1:
                continue
            if num < arr[x][y]:
                arr[x][y] = num
            times += 1
        t = 0 - t
        for i in range(1,length+1):
            num += 1
            y += t*d
            if x <= 0 or x >= n + 1 or y <= 0 or y >= m + 1:
                continue
            if num < arr[x][y]:
                arr[x][y] = num
            times += 1
        length += 1


for i in range(k):
    x, y, k = map(int, raw_input().split())
    spiral(x, y, k)
print_arr()
# 결과 실행 시간 메모리 Grader output
1 Correct 39 ms 13160 KB Output is correct
2 Correct 43 ms 14556 KB Output is correct
3 Correct 34 ms 14556 KB Output is correct
4 Correct 34 ms 14556 KB Output is correct
5 Correct 37 ms 14556 KB Output is correct
6 Correct 74 ms 16608 KB Output is correct
7 Correct 49 ms 16608 KB Output is correct
8 Correct 41 ms 16608 KB Output is correct
9 Correct 570 ms 21004 KB Output is correct
10 Correct 77 ms 21004 KB Output is correct