문제 링크입니다: https://www.acmicpc.net/problem/13458
input은 int형이지만 output은 long long형으로 하는 것이 핵심이였습니다.
/*
총 N개의 시험장이 있고, 각각의 시험장마다 응시자들이 있다.i번 시험장에 있는 응시자의 수는 Ai명이다.
감독관은 총감독관과 부감독관으로 두 종류가 있다.
총감독관은 한 방에서 감시할 수 있는 응시자의 수가 B명이고,
부감독관은 한 방에서 감시할 수 있는 응시자의 수가 C명이다.
각각의 시험장에 총감독관은 오직 1명만 있어야 하고, 부감독관은 여러 명 있어도 된다.
각 시험장마다 응시생들을 모두 감시해야 한다.이 때, 필요한 감독관 수의 최소값을 구하는 프로그램을 작성하시오.
*/
#include <iostream>
using namespace std;
const int MAX = 1000000;
int N; //교실 수
int A[MAX]; //교실 당 학생 수
int B, C; //총감독관, 부감독관
long long minSupervisor(void)
{
long long total = 0;
for (int i = 0; i < N; i++)
{
A[i] -= B; //총감독관이 감시할 수 있는 학생 수만큼 빼고
total++;
//남은 학생들을 몇명의 부감독관이 감시해야하는가
if (A[i] > 0)
total += (A[i] % C == 0) ? (A[i] / C) : (A[i] / C + 1);
}
return total;
}
int main(void)
{
cin >> N;
if (N<1 || N>MAX)
exit(-1);
for (int i = 0; i < N; i++)
cin >> A[i];
cin >> B >> C;
if (B<1 || B>MAX || C<1 || C>MAX)
exit(-1);
cout << minSupervisor() << endl;
return 0;
}
개발환경:Visual Studio 2017
지적, 조언, 질문 환영입니다! 댓글 남겨주세요~
'알고리즘 > BOJ' 카테고리의 다른 글
백준 1904 01타일 (0) | 2018.03.09 |
---|---|
백준 13460 째로탈출 2 (2) | 2018.03.08 |
백준 10942번 팰린드롬? (0) | 2018.03.07 |
백준 1915번 가장 큰 정사각형 (0) | 2018.03.06 |
백준 11054번 가장 긴 바이토닉 부분 수열 (0) | 2018.03.05 |