음... 사실 이거는 단순 나눗셈 아닌가 싶어서 풀고, 예제를 다 통과해서 제출했다.
그런데 제출에서 틀렸다고 자꾸 뜨길래 뭐가 문제일까 고민하다 최대값이 int의 최대값을 넘어갈 수 있다는 생각에 정답을 long long 로 바꾸어서 통과함.
각 시험장에 총감독관 1명은 필수
시험장의 최댓값은 = 1,000,000
시험장 별 응시인원 모두 최댓값 = 1,000,000
총감독관,부감독관 감시가능 인원 최소값 = 1
일 경우 1,000,000 X 1,000,000 = 1,000,000,000,000 (=10^12)
대략 2^40 이기 때문에 int 최대보다 크다, unsigned int의 최대값보다도 크다.
그러므로 8byte 크기를 가지는 long long 사용
int는 4byte = 4 X 8bit = 32 bit
signed int 의 경우 가장 앞의 비트 하나 제외하고
(-2^31 ~ 2^31-1) = (-2,147,483,648 ~ 2,147,483,647)
/**
* @file 13458.cpp
* @author jungbbong
* @brief
* @version 0.1
* @date 2023-03-22
*
* @copyright Copyright (c) 2023
*
*/
#include<iostream>
#include<vector>
#include<queue>
using namespace std;
int N;
vector<int> tester;
int B,C;
int main(){
long long answer=0;
cin >> N;
for(int i=0;i<N;i++){
int tmp;
cin >> tmp;
tester.push_back(tmp);
}
cin >> B >> C;
answer = N;
for(int i=0;i<N;i++){
tester[i]-=B;
if(tester[i] > 0){
if(tester[i]%C==0){
answer = answer + (tester[i]/C);
}else{
answer += 1;
answer = answer + ((tester[i])/C);
}
}
}
cout << answer <<"\n";
return 0;
}