문제
접근 방법
비교적 간단한 문제이다. 일단 모든 방에 총감독이 있어야 한다. 따라서 모든 방에 총감독이 배치되고 총감독이 관리할 수 있는 인원을 뺀 상태에서 시작한다. 관리해야할 인원이 더 있다면 그 때부터 부감독관을 넣는다.
여기서 주의해야하는 점은 정답 출력을 int로 하다보면 오버플로우가 나 제대로된 정답을 출력할수가 없다.
코드
#include <iostream> using namespace std; int N; int studentNum[1000001]; int captain; int vice; int main() { cin >> N; for(int i = 1; i <= N; i ++) { cin >> studentNum[i]; } cin >> captain >> vice; long long ans = N; for(int i = 1; i <= N; i ++) { studentNum[i] = studentNum[i] - captain; int students = studentNum[i]; int temp; if(students > 0) { if(students % vice == 0) { temp = students / vice; } else { temp = (students / vice) + 1; } ans += temp; } } cout << ans; return 0; }