Algorithm/배열
백준 13458 시험감독 c++ // ret는 int범위를넘을수있다.
Mini_96
2024. 2. 16. 00:31
https://www.acmicpc.net/problem/13458
13458번: 시험 감독
첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000)
www.acmicpc.net
1. ret의 범위설정
시험장 1,000,000 * 학생수 1,000,000 > 21억
-> long long ret를 써야함
2. 전체코드
#include <bits/stdc++.h>
using namespace std;
int n, a[1000000+4], b, c,tot;
long long ret;
int main() {
cin.tie(0);
cin >> n;
for(int i=0;i<n;++i) {
cin >> a[i];
tot += a[i];
}
cin>> b >> c;
//각 시험장에 대해 검사필요
for (int i = 0; i < n; ++i) {
//총감독만으로 충분한경우 다음시험장검사
ret++; //총감독은 반드시 있어야함
if (a[i] <= b) {
continue;
}
int res = a[i] - b; //감독해야하는 학생수
if (res % c == 0) {
ret += (res / c);
}
else {
ret += (res / c);
ret++;
}
}
cout << ret;
return 0;
}