์•Œ๊ณ ๋ฆฌ์ฆ˜/๊ตฌํ˜„

[๋ฐฑ์ค€ 16967 ๐Ÿฅˆ] ๋ฐฐ์—ด ๋ณต์›ํ•˜๊ธฐ

1eehyunji 2023. 7. 5. 22:57

https://www.acmicpc.net/problem/16967

 

16967๋ฒˆ: ๋ฐฐ์—ด ๋ณต์›ํ•˜๊ธฐ

ํฌ๊ธฐ๊ฐ€ H × W์ธ ๋ฐฐ์—ด A์™€ ๋‘ ์ •์ˆ˜ X์™€ Y๊ฐ€ ์žˆ์„ ๋•Œ, ํฌ๊ธฐ๊ฐ€ (H + X) × (W + Y)์ธ ๋ฐฐ์—ด B๋Š” ๋ฐฐ์—ด A์™€ ๋ฐฐ์—ด A๋ฅผ ์•„๋ž˜๋กœ X์นธ, ์˜ค๋ฅธ์ชฝ์œผ๋กœ Y์นธ ์ด๋™์‹œํ‚จ ๋ฐฐ์—ด์„ ๊ฒน์ณ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์ˆ˜๊ฐ€ ๊ฒน์ณ์ง€๋ฉด ์ˆ˜๊ฐ€ ํ•ฉ์ณ

www.acmicpc.net

๋ฌธ์ œ

ํฌ๊ธฐ๊ฐ€ H × W์ธ ๋ฐฐ์—ด A์™€ ๋‘ ์ •์ˆ˜ X์™€ Y๊ฐ€ ์žˆ์„ ๋•Œ, ํฌ๊ธฐ๊ฐ€ (H + X) × (W + Y)์ธ ๋ฐฐ์—ด B๋Š” ๋ฐฐ์—ด A์™€ ๋ฐฐ์—ด A๋ฅผ ์•„๋ž˜๋กœ X์นธ, ์˜ค๋ฅธ์ชฝ์œผ๋กœ Y์นธ ์ด๋™์‹œํ‚จ ๋ฐฐ์—ด์„ ๊ฒน์ณ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์ˆ˜๊ฐ€ ๊ฒน์ณ์ง€๋ฉด ์ˆ˜๊ฐ€ ํ•ฉ์ณ์ง„๋‹ค.

์ฆ‰, ๋ฐฐ์—ด B์˜ (i, j)์— ๋“ค์–ด์žˆ๋Š” ๊ฐ’์€ ์•„๋ž˜ 3๊ฐœ ์ค‘ ํ•˜๋‚˜์ด๋‹ค.

  • (i, j)๊ฐ€ ๋‘ ๋ฐฐ์—ด ๋ชจ๋‘์— ํฌํ•จ๋˜์ง€ ์•Š์œผ๋ฉด, Bi,j = 0์ด๋‹ค.
  • (i, j)๊ฐ€ ๋‘ ๋ฐฐ์—ด ๋ชจ๋‘์— ํฌํ•จ๋˜๋ฉด, Bi,j = Ai,j + Ai-X,j-Y์ด๋‹ค.
  • (i, j)๊ฐ€ ๋‘ ๋ฐฐ์—ด ์ค‘ ํ•˜๋‚˜์— ํฌํ•จ๋˜๋ฉด, Bi,j = Ai,j ๋˜๋Š” Ai-X,j-Y์ด๋‹ค.

๋ฐฐ์—ด B์™€ ์ •์ˆ˜ X, Y๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋ฐฐ์—ด A๋ฅผ ๊ตฌํ•ด๋ณด์ž.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ๋„ค ์ •์ˆ˜ H, W, X, Y๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ H + X๊ฐœ์˜ ์ค„์— ๋ฐฐ์—ด B์˜ ์›์†Œ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.

ํ•ญ์ƒ ๋ฐฐ์—ด A๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ๋งŒ ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„๋‹ค.

์ถœ๋ ฅ

์ด H๊ฐœ์˜ ์ค„์— ๋ฐฐ์—ด A์˜ ์›์†Œ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

์ œํ•œ

  • 2 ≤ H, W ≤ 300
  • 1 ≤ X < H
  • 1 ≤ Y < W
  • 0 ≤ Bi,j ≤ 1,000

 

๋ฌธ์ œ ํ’€์ด

import sys

h,w,x,y=map(int, sys.stdin.readline().split(' '))
B=[list(map(int, sys.stdin.readline().split(' '))) for _ in range(h+x)]

for i in range(x,h+x):
    for j in range(y,w+y):
        # A ๋ฐฐ์—ด๊ณผ ๊ฒน์น˜๋Š” ๋ถ€๋ถ„
        if i<h and j<w:
            B[i][j]-=B[i-x][j-y]

for i in range(h):
    for j in range(w):
        print(B[i][j], end=' ')
    print('')

1. ๋ฐฐ์—ด A๊ฐ€ HxW ์‚ฌ์ด์ฆˆ ๋ฐฐ์—ด์ด๋ฉด์„œ, ๋ฐฐ์—ด A์™€ ๋ฐฐ์—ด A๋ฅผ ๋ฐ‘์œผ๋กœ X์นธ, ์˜ค๋ฅธ์ชฝ์œผ๋กœ Y์นธ ์ด๋™ํ•œ ๋ฐฐ์—ด A'๋ฅผ ํ•ฉ์นœ ๋ฐฐ์—ด B๊ฐ€ (H+X)x(W+Y) ์‚ฌ์ด์ฆˆ ๋ฐฐ์—ด์ž„์„ ํ†ตํ•ด์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ํ˜•์‹์ž„์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค.

2. ์œ„์™€ ๊ฐ™์€ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ธฐ ๋•Œ๋ฌธ์—, ๊ฒน์น˜๋Š” ๋ถ€๋ถ„์˜ ์ขŒํ‘œ๊ฐ€ (i,j)๋ผ ํ–ˆ์„ ๋•Œ, B[i-x][j-y]๋ฅผ B[i][j]์—์„œ ๋นผ์ฃผ๋ฉด ์›๋ž˜ ๊ฐ’์œผ๋กœ ๋ณต์› ๊ฐ€๋Šฅํ•˜๋‹ค.

( ๋‹จ, ๊ฒน์น˜๋Š” ๋ถ€๋ถ„ ์ค‘ ์ขŒ์ธก ์ƒ๋‹จ๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ๋ณต์›ํ•ด์•ผ ํ•จ

-> ์ˆœ์„œ๋Œ€๋กœ ํ•˜์ง€ ์•Š์œผ๋ฉด ์•„์ง ๋ณต์›๋˜์ง€ ์•Š์€ B[i-x][j-y] ๊ฐ’์„ B[i][j]์—์„œ ๋นผ์ฃผ๊ฒŒ ๋˜๋ฏ€๋กœ, ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๊ฐ’์ด ์ €์žฅ๋จ )

3. ๊ฒน์น˜๋Š” ๋ถ€๋ถ„์„ ๋ชจ๋‘ ๋ณต์›ํ•ด์ฃผ๊ณ  ์›๋ž˜ A๋ฐฐ์—ด์˜ ์œ„์น˜(B[:h][:w])๋ฅผ ์ถœ๋ ฅํ•ด์ฃผ๋ฉด ๋