๐ก ์กฐ๊ฑด ๋ฐ ํ์ด
- ์ฌ์ง ํฌ๊ธฐ๋ฅผ ์๋ฏธํ๋
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]
์ ๋ฐฐ์ด์ด ์์ ๋, ๋ฐฐ์ด์ ๋๋ฒ์งธ ์์๋ถํฐ ๋ค๋ฒ์งธ ์์์ ํฉ์ ๊ตฌํ๋ ค๊ณ ํ๋ค.
๊ทธ๋ ๋ค๋ฉด ๋ค๋ฒ์งธ ์์์์ ์ฒซ๋ฒ์งธ ์์์ ๊ฐ์ ๋นผ์ฃผ๋ฉด ๊ตฌํ๋ ค๋ ๊ฐ์ด ๋๋ค.
๐พ ๋๋์
- ๋์ ํฉ์ ๊ฐ๋
๊ณผ ์๋ฆฌ, ์ฑ์ง์ ์๋ฅด๋ฐ์ดํธ ์ถ๊ทผํ๋ฉด์ ์งํ์ฒ ์์ ๋ณธ ๊ฒ์ด ํฐ ๋์์ด ๋์๋ค.
- ์ธ๋ฑ์ค ์๋ฌ๊ฐ ์ฝ๊ฒ ๋ฐ์ํ ์ ์์ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋ค์ด ๋ค๋ฅธ ํ์ด๋ ์๊ฐํด๋ณด์์ง๋ง ํฐ ๋์์ ๋์ง ์์๋ค.