반응형

 

 

<코드>

#include<iostream>
#include<algorithm>
using namespace std;
int N, A[1000001], B, C;
long long sum;


int main()
{
	cin >> N;

	for (int i = 0; i < N; i++)
	{
		cin >> A[i];
	}

	cin >> B >> C;

	for (int i = 0; i < N; i++)
	{
		// 총감독관 한명으로 응시생 모두를 커버할 수 있을 때
		if (A[i] <= B) sum++;
		// 총감독관 한명이 감시할 수 있는 응시생 수를 제외하고
		// 필요한 부감독관의 수 계산
		else
		{
			sum += (A[i] - B) / C + 1;

			// ex 2명을 감시할 수 있는 부감독관은
			// 3명일때는 2명이 필요하기 때문 
			if ((A[i] - B) % C != 0) sum++;
		}	
	}
	cout << sum;
}

 

풀이 방법

응시생 수가 각 시험장 마다 최대 100만이므로 sum 변수는 int 자료형의 범위를 넘어설 수 있습니다. 따라서 long long 자료형을 사용하도록 합시다.

 

www.acmicpc.net/problem/13458

 

13458번: 시험 감독

첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000)

www.acmicpc.net

 

반응형

+ Recent posts