[IT]
[SW역량테스트준비] 캐슬 디펜스
working_hard
2019. 10. 19. 11:44
728x90
-
궁수 3명 지정해준다
-
n번만큼 돌면서
-
3명의 아쳐들과 비교한다
-
거리를 비교
-
-
선택받은 적은 킬한다
-
한칸씩 밑으로 내린다
-
-
정답이 최대인 걸 구한다.
수도코드 짜는게 솔직히 제일 중요한걸 느끼는데 하루남았네?
import sys,copy
from heapq import heappush,heappop
from sys import stdin
# sys.stdin = open('input.txt')
input = stdin.readline
n,m,d = map(int,input().split())
a = [list(map(int,input().split())) for _ in range(n)]
archer = [0]*3
def kill(b):
cnt = 0
for _ in range(n):
v =[]
for idx in range(3):
q = []
for i in range(n):
for j in range(m):
if b[i][j]==1:
dist = abs(n-i)+abs(archer[idx]-j) # 이 부분 수정하였음. idx -> archer[idx]
if dist<=d:
heappush(q,(dist,j,i))
if q:
_,j,i = heappop(q)
v.append((i,j))
for i,j in v:
if b[i][j]:
b[i][j]=0
cnt +=1
for i in range(n-2,-1,-1):
for j in range(m):
b[i+1][j] = b[i][j]
for i in range(m):
b[0][i] = 0
return cnt
ans = 0
for i in range(m):
for j in range(i+1,m):
for k in range(j+1,m):
archer[0],archer[1],archer[2] = i,j,k
b = copy.deepcopy(a)
ans = max(ans,kill(b))
print(ans)