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

+ Recent posts