내 세상

[Algorithm] 백준 13458번 시험 감독 본문

Coding/Algorithms

[Algorithm] 백준 13458번 시험 감독

sga8 2019. 3. 17. 21:32
728x90
반응형

백준 13458번 시험 감독

https://www.acmicpc.net/problem/13458


우선 각 시험관 별 총 감독자를 1명을 넣음.

즉, 코드에서는 각 시험관에 총 감독자수가 커버하는 인원(B)를 감소시켜줌.


그리고 남은 인원이 0이 아니라면, 부감독자가 몇명 필요한지 계산해야함.

남은인원을 부감독자가 커버하는 인원(C)로 나눴을 때 나누어 떨어지면, 그 몫 만큼 더해주고

조금 남는다면 1을 추가로 더해주면 됨. 한명이 더 필요하기 때문에



그리고 추가로 값이 int를 넘어가기 때문에 long long int 를 사용해주어야 함.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <vector>
 
#define ll long long int
 
using namespace std;
int N, B, C;
ll people[1000001];
ll answer;
int main()
{
    cin >> N;
    for (int i = 0; i < N; i++) {
        cin >> people[i];
    }
    cin >> B >> C;
 
    answer = 0;
    for (int i = 0; i < N; i++) {
        people[i] -= B;
        answer += 1;
        if (people[i] > 0){
            if (people[i] % C == 0) answer -= 1;
            answer += (people[i] / C) + 1;
        }
    }
 
    cout << answer;
    return 0;
}
cs



728x90
반응형