[백준/BOJ] 백준 13458번 : 시험 감독

2020. 9. 8. 02:13알고리즘 문제풀이

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

total을 long long형으로 표현했다.

 

코드

#include <iostream>
#include <algorithm>
using namespace std;

int n;
int people[1000001];
int a;
int b, c;
long long total = 0;

int main()
{
	cin.tie(NULL);
	ios_base::sync_with_stdio(false);

	cin >> n;

	for (int i = 1; i <= n; i++)
	{
		cin >> a;
		people[i] = a;
	}

	cin >> b >> c;

	for (int i = 1; i <= n; i++)
	{
		//i번 시험장의 응시자 수
		int this_people = people[i];

		//총 감독관은 오직 1명이므로 총감독관이 감시할 수 있는 인원을 뺸다
		this_people -= b;
		total++; //해당 시험장의 총감독관 인원 추가(1명 추가)

		//총 감독관이 감시할 수 있는이 해당 시험장의 응시자수 보다 많을때
		if (this_people < 0)
			this_people = 0;

		if (this_people != 0)
		{
			int temp = this_people / c;

			if (this_people%c != 0)
			{
				temp++;
			}

			total += temp; //해당 시험장의 부감독관 인원을 추가
		}
	}

	cout << total;

	return 0;
}