PS
[λ°±μ€] 16507 μ΄λμ΄ κ±΄ 무μμ with Python
νμ€_It's
2021. 9. 12. 22:35
728x90
λ°μν
π BOJ 16507 μ΄λμ΄ κ±΄ 무μμ
π‘ 쑰건 λ° νμ΄
- μ¬μ§ ν¬κΈ°λ₯Ό μλ―Ένλ
1 <= R, C <= 1000 - μ¬μ§ μΌλΆλΆμ λ°κΈ° νκ· μ μμλ³Ό κ°μ
Q Qκ°μ κ° μ€μλ μ¬μ§μ μΌλΆλΆμ λνλ΄κΈ° μν λ κΌμ§μ μ μλ―Ένλ μ μr1, c1, r2, c2κ° μ£Όμ΄μ§λ€.(1 ≤ r1 ≤ r2 ≤ R, 1 ≤ c1 ≤ c2 ≤ C)- λμ ν© λ¬Έμ
Qκ°μ κ° μ€μ μ£Όμ΄μ§ μ¬μ§μμ λ μ (r1, c1)κ³Ό(r2, c2)λ₯Ό κΌμ§μ μΌλ‘ νλ μ§μ¬κ°νμ λ°κΈ° νκ· μ μΆλ ₯νλ€.- νκ· μ μ μ λλμ μΌλ‘ λͺ«λ§ μ·¨νλ€.
π₯ μμ€ μ½λ
from sys import stdin
r, c, q = map(int, stdin.readline().split())
pic = [[0] * (c + 1)]
for i in range(r):
sum_list = [0]
data = list(map(int, stdin.readline().split()))
sum_list.append(data[0])
for i in range(1, c):
sum_list.append(sum_list[-1] + data[i])
pic.append(sum_list)
for _ in range(q):
a, b, c, d = map(int, stdin.readline().split())
addr = [(a, b), (c, d)]
addr.sort(key=lambda x: x[0])
res = 0
knife = (abs(addr[0][0]-addr[1][0]) + 1) * (abs(addr[0][1]-addr[1][1]) + 1)
for i in range(addr[0][0], addr[1][0] + 1):
res += pic[i][addr[1][1]] - pic[i][addr[0][1] - 1]
print(res // knife)
π μμ λ° μ€νκ²°κ³Ό
μμ
5 6 1
4 1 3 4 9 5
1 2 8 7 5 5
8 1 2 5 3 2
1 5 3 4 2 5
5 2 1 2 3 5
2 2 4 5
μ€νκ²°κ³Ό
3
β¨οΈ λ¬Έμ νμ΄
- λμ ν© λ¬Έμ λ€.
- κΌμ§μ μ μλ―Ένλ μ μκ° 1λΆν° μμλκΈ°μ μΈλ±μ€ μλ¬λ₯Ό μ‘°μ¬ν΄μΌνλ€.
κ·Έλμ λλ(R + 1) * (C + 1)ν¬κΈ°λ¦ λ°°μ΄μ λ§λ€μ΄ μ½λλ λ¨μν μμΌ°λ€. - μ
λ ₯ λ°μ
R * Cν¬κΈ°μ λ°μ΄ν°λ₯Ό λ°°μ΄μ λ£κ³ λμ ν©μ κ΅¬ν΄ λ°°μ΄μ λ£μ΄μ€λ€. - κΌμ§μ μ’νλ₯Ό μ
λ ₯λ°μ
xμ’νμ ν¬κΈ°λ₯Ό μ€νμ°¨μμΌλ‘ μ λ ¬μμΌ°λ€.
κ°μ₯ μΌμͺ½μ μμΉνκ³ μλ μ’νλ₯Ό μ°ΎμΌλ €κ³ νλ€. - μ§μ¬κ°νμ ν¬κΈ°λ₯Ό μμμΌ λμ ν©μ μ΄μ©ν΄ μ°Ύμ λ°κΈ°μ ν©λ λλ μ μλ€.
κ·Έλμ μ λ ¬ μν¨ μ’νλ₯Ό μ¬μ©ν΄ μ§μ¬κ°νμ ν¬κΈ°λ₯Ό κ³μ°νλ€.(abs(addr[0][0]-addr[1][0]) + 1) * (abs(addr[0][1]-addr[1][1]) + 1) - λ°°μ΄μ κ° κ°λ‘μ€λ§λ€ λ°λ‘ κ³μ°μ ν΄μ£Όμλ€.
λμ ν©μ μ±μ§μ μλ₯Ό λ€μλ©΄ λ€μκ³Ό κ°λ€.[4, 5, 8, 12, 21, 26]μ λ°°μ΄μ΄ μμ λ, λ°°μ΄μ λλ²μ§Έ μμλΆν° λ€λ²μ§Έ μμμ ν©μ ꡬνλ €κ³ νλ€.
κ·Έλ λ€λ©΄ λ€λ²μ§Έ μμμμ 첫λ²μ§Έ μμμ κ°μ λΉΌμ£Όλ©΄ ꡬνλ €λ κ°μ΄ λλ€.
πΎ λλμ
- λμ ν©μ κ°λ κ³Ό μ리, μ±μ§μ μλ₯΄λ°μ΄νΈ μΆκ·Όνλ©΄μ μ§νμ² μμ λ³Έ κ²μ΄ ν° λμμ΄ λμλ€.
- μΈλ±μ€ μλ¬κ° μ½κ² λ°μν μ μμ κ² κ°λ€λ μκ°μ΄ λ€μ΄ λ€λ₯Έ νμ΄λ μκ°ν΄λ³΄μμ§λ§ ν° λμμ λμ§ μμλ€.
λ°μν