[백준/파이썬] 8246번 Stół 풀이

업데이트:



문제 정보


풀이

문제

원문

Bajtazar kupuje meble przez Internet. Znalazł już ładny stół i zestaw krzeseł. Teraz zastanawia się, ile krzeseł może kupić, tak aby wszystkie zmieściły się przy stole.

Stół ma prostokątny blat o wymiarach A × B centymetrów. Z kolei siedzisko krzesła, patrząc z góry, to kwadrat o wymiarach K × K centymetrów. Dalej będziemy traktować stół jako prostokąt, a krzesła - jako kwadraty.

Nad jednym z brzegów siedziska (kwadratu) znajduje się oparcie. Każde krzesło należy ustawić oparciem przy stole, tzn. brzeg z oparciem powinien pokrywać się z pewnym brzegiem stołu. Ponadto siedzisko powinno w całości znajdować się pod blatem. Oczywiście żadne dwa krzesła nie mogą na siebie nachodzić. W naszych rozważaniach pomijamy nogi od stołu (możemy założyć, że są nieskończenie cienkie i znajdują się w rogach blatu). Ile krzeseł zmieści się pod stołem?

해석

대강 해석하자면, 등받이가 있는 의자를 탁자에 최대 몇개 놓을 수 있냐 하는 문제입니다.

  • 자세한 문제 및 입출력 예제는 상단의 문제 출처(백준 홈페이지)를 참조해주세요

코드

a,b,k=map(int,input().split())
print((a//k)*(b//k)-max(0,a//k-2)*max(0,b//k-2))

설명

의자에 있는 등받이를 배제하고 생각해서, 총 몇개의 의자 크기의 사각형으로 탁자가 쪼개질 수 있는지 구합니다.

이후 등받이가 있어야 하므로 가쪽이 아닌 곳에 있는 의자의 개수를 빼줍니다.



댓글남기기