Problem Solving/BOJ(백준)
[BOJ]백준 17245번: 서버실(C++)/Binary Search
이진2
2021. 6. 7. 22:29
https://www.acmicpc.net/problem/17245
17245번: 서버실
서버실에는 모두 85대의 컴퓨터가 있고, 3분이 지나면 전체의 58%인 50대의 컴퓨터가 정상 작동된다.
www.acmicpc.net
문제의 자료형 범위를 잘 확인하자 ^^
오랜만에 다시 백준 start
#include <cstdio>
#include <vector>
#define ull unsigned long long
using namespace std;
int n;
int map[1001][1001];
int main() {
ull left = 0, right = 0, sum = 0;
scanf("%d", &n);
for (int i = 0; i < n; i++)for (int j = 0; j < n; j++) {
scanf("%d", &map[i][j]);
sum += map[i][j];
if (map[i][j] > right)right = map[i][j];
}
while (left + 1 < right) {
ull mid = (left + right) / 2;
ull cnt = 0;
for (int i = 0; i < n; i++)for (int j = 0; j < n; j++) {
cnt += mid > map[i][j] ? map[i][j]:mid;
}
if (((double)cnt/sum)>=0.5)
right=mid;
else left = mid;
}
printf("%lld", right);
return 0;
}