총 N개의 시험장이 있고, 각각의 시험장마다 응시자들이 있다. i번 시험장에 있는 응시자의 수는 Ai명이다.
감독관은 총감독관과 부감독관으로 두 종류가 있다. 총감독관은 한 시험장에서 감시할 수 있는 응시자의 수가 B명이고, 부감독관은 한 시험장에서 감시할 수 있는 응시자의 수가 C명이다.
각각의 시험장에 총감독관은 오직 1명만 있어야 하고, 부감독관은 여러 명 있어도 된다.
각 시험장마다 응시생들을 모두 감시해야 한다. 이때, 필요한 감독관 수의 최솟값을 구하는 프로그램을 작성하시오.
첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다.
둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다.
셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000)
각 시험장마다 응시생을 모두 감독하기 위해 필요한 감독관의 최소 수를 출력한다.
단순한 수학 문제다. 인원에다가 총감독관을 빼주고 부감독관으로 나눈 후에 필요한 감독관의 수를 더하면 된다. 처음에는 그냥 아무 생각없이 loop를 돌며 감독관의 수를 매번 빼줬는데 시간 초과가 떠서 처음에는 당황스러웠다. 결국 나눗셈을 활용해 문제를 풀긴 했으나 처음부터 나눗셈을 생각해냈으면 더 좋았을 것 같다.
import sys
n = int(sys.stdin.readline())
a = list(map(int, sys.stdin.readline().split()))
b, c = map(int, sys.stdin.readline().split())
cnt = n
for i in a:
i -= b
if i > 0:
cnt += i // c
if i % c != 0:
cnt += 1
print(cnt)