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