https://www.acmicpc.net/problem/13458
문제조건
- n개의 시험장
- 각 시험장의 응시자 수(a)
- 총감독관이 감시할수 있는 수(b), 부감독관이 감시할수 있는 수(c)
- 총감독관은 시험장마다 오직 1명만 가능
너무 쉽게 생각했는데, 처음부터 틀려버렸다.
예외 조건이라고는 총감독관 혼자서 응시자를 모두 감시할 수있을경우에 대한 로직만 처리하면 될 줄 알았는데, 뭐가 문제인지 몰랐다.
생각해보니, 응시자수와 시험장수가 어마어마하게 큰 값이 라는 것이다.
평소에 사용하는 int(정수형)은 대략 21억까지의 숫자까지 표현가능한데 내가 답으로 내놓고 싶은 감독관의 숫자는 21억보다 훨씬 크게 나올 수있다. 따라서 자료형을 long long으로 바꾸니 해결,,!
소스코드
#include <iostream>
#include <vector>
using namespace std;
int n, group[1000001], b, c;
int main(){
cin >> n;
for (int i = 1; i <= n; i++) {
int a;
cin >> a;
//각 시험장의 응시자 수
group[i] = a;
}
//총감독관, 부감독관 감시 수
cin >> b >> c;
long long res = 0;
for (int i = 1; i <= n; i++) {
group[i] -= b;
res++;
if (group[i] < 1) continue;
if (group[i] % c) res = res + (group[i] / c) + 1;
else res = res + group[i] / c;
}
cout << res;
}
단순 구현 문제이다.
'Algorithm > 구현, 시뮬레이션' 카테고리의 다른 글
[BAEKJOON] 3758번 KCPC (0) | 2024.05.20 |
---|---|
[BAEKJOON] 15685번 드래곤 커브 (1) | 2024.04.10 |
[BAEKJOON] 3190번 뱀 (0) | 2024.04.06 |
[BAEKJOON] 13460번 구슬 탈출 2 (0) | 2024.04.05 |
[BAEKJOON] 20006번 랭킹전 대기열 (0) | 2024.04.01 |