BOJ(백준)

[C언어] 백준 - 13136 Do Not Touch Anything

ruming 2022. 2. 26. 03:14

문제

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;
}

 

 

'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