https://www.acmicpc.net/problem/17245
17245번: 서버실
서버실에는 모두 85대의 컴퓨터가 있고, 3분이 지나면 전체의 58%인 50대의 컴퓨터가 정상 작동된다.
www.acmicpc.net
#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
using namespace std;
int main() {
int N;
int arr[1000][1000];
cin >> N;
int MAX = -1;
// long long은 실패
double sum = 0;
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
cin >> arr[i][j];
MAX = max(MAX, arr[i][j]);
sum += arr[i][j];
}
}
int left = 0;
int right = MAX;
int answer = 21e8;
while (left <= right) {
long long cnt = 0;
int middle = (left + right) / 2;
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
cnt += min(middle, arr[i][j]);
}
}
if (cnt >= round(sum / 2)) {
answer = min(middle, answer);
right = middle - 1;
}
else {
left = middle + 1;
}
}
cout << answer;
return 0;
}
'APS > 백준' 카테고리의 다른 글
[10816] 숫자 카드2 C++ (0) | 2022.03.03 |
---|---|
[3745] 오름세 C++ (0) | 2022.03.02 |
[2110] 공유기 설치 C++ (0) | 2022.02.13 |
[2805] 나무 자르기 C++ (0) | 2022.02.13 |
[2512] 예산 C++ (0) | 2022.02.09 |