본문 바로가기

Algorithm/Math

(C++) - 백준(BOJ) 13458번 : 시험감독

반응형

https://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

단순 수학 문제였습니다.

 

 

📕 풀이방법

 1. 총 감독관은 1명만 있어야하므로 무조건 추가되어야 합니다.

 

 2. 부 감독관은 몇 명이 있는지 상관없으므로 (a[i] - b) / c만큼 있으면 됩니다.

 

* (a[i] - b) % c가 나머지가 있으면(양수면) 부 감독관을 한 명 더 배치해야합니다.

* 총, 부 감독관이 감시가능한 학생 수 가 각각 1명씩일 때 a[i]가 모두 100만이라면 int범위를 초과할 수 있습니다.


 

 

📕 Code

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
ll n, a[1000001], b, c, ans;
int main(){
    cin >> n;
    for(int i = 0 ; i < n; i++) cin >> a[i];
    cin >> b >> c;
    for(int i = 0; i < n; i++){
        ans += 1;
        a[i] -= b;
        if(a[i] < 0) continue;
        if(a[i] % c) ans += a[i] / c + 1;
        else ans += a[i] / c;
    }
    cout << ans << '\n';
}