최악의 경우의 수에서 결과가 int형 크기를 넘을 수 있으므로 결과는 long long 타입으로 지정한다.
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
void input_test(int* N, vector<int>& A, int* B, int* C)
{
int i, j;
cin >> *N;
for (i = 0; i < *N; i++)
{
cin >> j;
A.push_back(j);
}
cin >> *B >> *C;
return;
}
void find_answer(vector<int>& A, int B, int C)
{
long long count = 0;
int i;
for (i = 0; i < A.size(); i++)
{
if (A[i] - B > 0)
{
count++;
A[i] = A[i] - B;
if (A[i] % C == 0)
{
count += (A[i] / C);
}
else
{
count += ((A[i] / C) + 1);
}
}
else// A[i] - B <= 0
{
count++;
continue;
}
}
cout << count << "\n";
return;
}
int main(void)
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int N, B, C;
vector<int> A;
input_test(&N, A, &B, &C);
find_answer(A, B, C);
return 0;
}