문제
ACM-ICPC 대회의 대회장은 R행 C열의 직사각형 형태로 좌석이 배치되어 있다. 대회가 시작하기 전에는 참가자들이 아무것도 만지면 안 되기 때문에 진행자는 'Do not touch ANYTHING!!!'을 연신 외친다.
하지만, 진행자가 성대결절에 걸리면서 'Do not touch ANYTHING!!!'을 외칠 수 없는 처지가 되었다. 따라서 주최측은 CCTV를 설치하여 참가자들을 감시하려고 한다. 이때, 각 CCTV는 N행 N열의 직사각형 영역의 좌석을 촬영할 수 있다.
모든 좌석을 전부 촬영하도록 CCTV를 배치할 때, 최소 몇 개의 CCTV가 필요할까?
입력
첫 번째 줄에 좌석의 세로 크기, 가로 크기 R, C와 한 대의 CCTV가 수용할 수 있는 범위 N이 주어진다. (1 ≤ R, C, N ≤ 1,000,000)
출력
모든 좌석을 전부 촬영하도록 CCTV를 배치할 때, 필요한 CCTV의 최소 개수를 출력한다.
R과 C가 N의 배수이면 (R/N)*(C/N)개가, 그렇지 않으면 (R/N+1)*(C/N+1)개가 필요하다.
R과 C가 각각 N의 배수인지 아닌지를 판단해 배수가 아니면 +1해서 곱하면 된다.
범위를 주의하자. R,C=1,000,000, N=1일 때 최대로 10^12까지 나올 수 있으므로 double을 사용했다.
#include <stdio.h>
int main(void) {
int r, c, n;
double a, b;
scanf("%d%d%d", &r, &c, &n);
if (r % n == 0) a = r / n;
else
{
a = r / n + 1;
}
if (c % n == 0) b = c / n;
else
{
b = c / n + 1;
}
printf("%.lf", a*b);
return 0;
}
![](https://blog.kakaocdn.net/dn/mXCRw/btrusNKuYb2/7C1gkAAhxswWjkqES0RcYK/img.png)
'BOJ(백준)' 카테고리의 다른 글
[BOJ/C++] 백준 10773 제로 (0) | 2022.10.02 |
---|---|
[BOJ/C++] 백준 2587 - 대표값2 (0) | 2022.09.25 |
[C언어] 백준 - 10250 ACM 호텔 (0) | 2022.02.26 |
[C언어] 백준 - 1085 직사각형에서 탈출 (0) | 2022.02.23 |
[C언어] 백준 - 2920 음계 (0) | 2022.02.23 |