문제 링크: https://www.acmicpc.net/problem/13458
2015년 하반기 삼성 sw역량테스트에 출제된 기출이라고 하네요. 요즘 트렌드로 봐서는 이런 쉬운 문제가 다시 나오진 않겠죠...
각 시험장마다 총감독관 한명은 무조건 있어야 하고, 남은 인원에 대해서 부감독관이 몇명이 필요한지 세면 되는데요, 두 가지를 주의해야 합니다.
- 정답의 범위: int 범위를 넘어갑니다. long long을 사용하세요
- 실수연산 주의
\[ \left \lceil \frac{사람수-b}{c} \right \rceil \]
매 고사장마다 필요한 부감독관의 인원은 위 수식으로 나타낼 수 있는데요, 문제는 ceil 함수를 썼더니 예제는 맞는데 채점하니 틀립니다. 실수연산에서 답이 달라지는 케이스가 있는 것 같네요.
그러면 정수연산으로 계산해주고, 나누어떨어지지 않는 경우만 더해주면 됩니다.
#pragma GCC optimize ("Ofast")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,avx,avx2")
#define _CRT_SECURE_NO_WARNINGS
#include <bits/stdc++.h>
using namespace std;
int main()
{
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
//freopen("output.txt", "w", stdout);
#endif
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int n;
cin >> n;
vector<int> v(n);
for (auto& num : v)
cin >> num;
int b, c;
cin >> b >> c;
long long ans = 0;
ans += n;
for (auto& num : v)
if (num > b) {
ans += (num - b) / c;
if ((num - b) % c != 0)
++ans;
}
cout << ans << '\n';
return 0;
}
반응형
'Online Judge > 백준' 카테고리의 다른 글
[백준][C++] 1463: 1로 만들기 (0) | 2020.05.13 |
---|---|
[백준][C++] 17825: 주사위 윷놀이 (0) | 2020.05.12 |
[백준][C++] 1373: 2진수 8진수 (0) | 2020.04.10 |
[백준][C++] 17087: 숨바꼭질 6 (0) | 2020.04.10 |
[백준][C++] 9613: GCD 합 (0) | 2020.04.10 |