알고리즘/백준

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

녕이 2022. 7. 27. 18:08
728x90

 

 

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) 인원수 >= 총감독: 인원수 -= 총감, cnt++

2) 인원수 < 총감독 : 인원수 = 0, cnt++

---

IF 인원수 != 0 : cnt += (인원수 - 1) / 부감 + 1

 

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

int main(){
    ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    int n, arr[1000001], b, c;
    long long cnt=0;
    cin >> n;
    for(int i=0; i<n; i++) cin >> arr[i];
    cin >> b >> c;
    
    for(int i=0; i<n; i++){
        int person = arr[i];
        if(person >= b){
            person -= b;
            cnt++;
        }else{
            cnt++;
            person = 0;
        }
        
        if(person != 0) cnt += (person - 1) / c + 1;
    }
    cout << cnt << '\n';
    return 0;
}

 

 

 

728x90