[IT]
[SW역량테스트준비] 낚시왕
working_hard
2019. 10. 19. 20:39
728x90
-
상어 배열에 넣기
-
낚시왕 한칸씩 이동
-
임시 배열 하나 생성(새로운 상어가 놓일 위치 지정용)
-
가장 가까운 열에 있는 상어 잡기
-
상어 이동
-
for문 돌리면서 방향 이동해주기
-
-
import sys
from sys import stdin
# sys.stdin = open('input.txt')
input = stdin.readline
r, c, m = map(int, input().split())
a = [[[0, 0, 0] for _ in range(c)] for _ in range(r)]
for _ in range(m):
x, y, s, d, z = map(int, input().split())
a[x-1][y-1] = [s, d-1, z]
dx, dy, ans = (-1, 1, 0, 0), (0, 0, 1, -1), 0
for t in range(c):
b = [[[0, 0, 0] for _ in range(c)] for _ in range(r)]
for i in range(r):
_, _, z = a[i][t]
if z:
ans += z
a[i][t] = [0, 0, 0]
break
for i in range(r):
for j in range(c):
s, d, z = a[i][j]
if z:
if d < 2:
ns, nd, ni = s % ((r-1)*2), d, i
for _ in range(ns):
if ni == 0 and nd == 0:
nd = 1
if ni == r-1 and nd == 1:
nd = 0
ni += dx[nd]
_, _, bz = b[ni][j]
if z > bz:
b[ni][j] = [s, nd, z]
else:
ns, nd, nj = s % ((c-1)*2), d, j
for _ in range(ns):
if nj == 0 and nd == 3:
nd = 2
if nj == c-1 and nd == 2:
nd = 3
nj += dy[nd]
_, _, bz = b[i][nj]
if z > bz:
b[i][nj] = [s, nd, z]
a[i][j] = [0, 0, 0]
a = b[:]
print(ans)
돌리니까 시간초과 났음.. 이유는? 한칸씩 이동하는게 시간 많이 걸린다고 합니다
모르겠다!!!!!!