13458번: 시험 감독
첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000)
www.acmicpc.net
쉬운 문제임에도 불구하고 시간초과와 변수 크기 때문에 꽤나 애먹었다..
또한 올림/내림 함수를 까먹어서 찾았고 또한 int형 숫자 두개를 나누면 절대 double형으로 결과값이 나오지 않는 다는 것도 알게 되었다.
오랜만에 푸는 문제였는데 브론즈임에도 불구하고 유의해야 할 점이 많이 있어서 기록하게 되었다.
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstdio>
#include <vector>
#include <cmath>
#include <algorithm>
using namespace std;
long long N, A, B, ans;
double C;
vector<double> lec;
int main() {
cin >> N;
for (int i = 0; i < N; i++) {
cin >> A;
lec.push_back(A);
}
cin >> B >> C;
ans += N;
for (int i = 0; i < N; i++) {
lec[i] -= B;
if (lec[i] > 0) {
ans += ceil(lec[i] / C);
}
}
cout << ans << "\n";
return 0;
}
'알고리즘 공부 > C++' 카테고리의 다른 글
[C++] 백준 14500번: 테트로미노 (0) | 2021.03.25 |
---|---|
[C++] 백준 3190번: 뱀 (0) | 2021.03.19 |
[C++] 백준 1992번: 쿼드트리 (0) | 2020.11.30 |
[C++] 백준 2583번: 영역 구하기 (0) | 2020.11.30 |
[C++] 백준 2343번: 기타 레슨 (0) | 2020.11.30 |