-
백준 - 시험 감독 (13458) [C++]문제 풀이/백준 2024. 4. 2. 22:42반응형
이 문제는 간단한 구현 문제이다.
매우 간단해보이는데 생각보다 정답률이 낮았다.
문제는 아주 간단한데, 총감독관을 각 방에 집어넣은 뒤 남은 인원을 부감독관으로 빼주면 된다.
여기서 문제는 시험장의 개수가 100만이고, B, C가 1이고, 응시자의 수가 모두 100만이면 100만 * 100만의 결과가 나오므로 오버플로우가 발생하는 것이다.
이를 해결하기 위해 정답 변수의 타입을 long long으로 하면 쉽게 풀린다.
#include <iostream> using namespace std; #define MAX 1000000 typedef long long LL; int N, B, C; LL students[MAX]; void input() { cin >> N; for (int i = 0; i < N; i++) { cin >> students[i]; } cin >> B >> C; } LL solve() { LL result = 0; for (int i = 0; i < N; i++) { result++; students[i] -= B; } for (int i = 0; i < N; i++) { if (students[i] <= 0) { continue; } LL need = students[i] / C; int rest = students[i] % C; if (rest != 0) { need++; } result += need; } return result; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); input(); cout << solve() << '\n'; return 0; }
반응형'문제 풀이 > 백준' 카테고리의 다른 글
백준 - 연산자 끼워넣기 (14888) [C++] (0) 2024.04.02 백준 - 퇴사 (14501) [C++] (0) 2024.04.02 백준 - 아기 상어 (16236) [C++] (0) 2024.03.27 백준 - 인구 이동 (16234) [C++] (0) 2024.03.26 백준 - 치킨 배달 (15686) [C++] (2) 2024.03.26