๐๏ธ Algorithm/๐ฉ ๋ฐฑ์ค
๐ฉ [๋ฐฑ์ค] [Python] [Silver2] 18111๋ฒ_๋ง์ธํฌ๋ํํธ
Dbswnstjd
2023. 3. 20. 16:46
๋ฌธ์
https://www.acmicpc.net/problem/18111
18111๋ฒ: ๋ง์ธํฌ๋ํํธ
ํ ๋ ๋์ํํธ๋ ๋ํ ์ค๋น๋ฅผ ํ๋ค๊ฐ ์ง๋ฃจํด์ ธ์ ์๋๋ฐ์ค ๊ฒ์์ธ ‘๋ง์ธํฌ๋ํํธ’๋ฅผ ์ผฐ๋ค. ๋ง์ธํฌ๋ํํธ๋ 1 × 1 × 1(์ธ๋ก, ๊ฐ๋ก, ๋์ด) ํฌ๊ธฐ์ ๋ธ๋ก๋ค๋ก ์ด๋ฃจ์ด์ง 3์ฐจ์ ์ธ๊ณ์์ ์์ ๋กญ๊ฒ
www.acmicpc.net
ํ์ด
# ๋ฐฑ์ค 18111๋ฒ ๋ฌธ์ - ๋ง์ธํฌ๋ํํธ
import sys
input = sys.stdin.readline
n, m, b = map(int, input().split()) # ์ธ๋ก, ๊ฐ๋ก, ๋ธ๋ก ๊ฐ์
graph = []
graph.append(list(map(int, input().split())) for _ in range(m))
answer = int(1e9)
g_level = 0
for i in range(257):
use_block = 0
take_block = 0
for x in range(n):
for y in range(m):
if graph[x][y] > i:
take_block += graph[x][y] - i
else:
use_block += i - graph[x][y]
if use_block > take_block + b:
continue
count = take_block * 2 + use_block
if count <= answer:
answer = count
g_level = i
print(answer, g_level)