알고리즘/BOJ

백준 13458 시험 감독

꾸준함. 2018. 3. 7. 23:00

문제 링크입니다: 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