본문 바로가기

Algorithm/Binary Search

Baekjoon 2110 공유기 설치

Link https://www.acmicpc.net/problem/2110

소스결과 2576 KB / 20 ms

출처 Baekjoon 

언어 C++ 17

분류 이분탐색

 

설명

도현이가 언제나 와이파이를 즐기기 위해 공유기 C개를 설치하려고 할때 인접한 공유기 사이의 거리를 가능한 크게 해서 설치 하려한다. 그 때 최대 값을 출력해주자

 

문제가 이해가 안간다.

코드를 봐도 모르겠다.

스터디에서 코드를 받고 코드를 보고 이해하려 했으나. 문제가 더 이해가 안되는 상황에 이르렀다. 공유기 개수.. 공유기 범위는 제한이 없는건가..?

문제 친절하게 설명해주실 분을 구합니다..

 

소스코드

#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

const int MAX = 200000;

bool exist[MAX + 1];

int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(0);

	int n, c;
	cin >> n >> c;

	vector<int> v(n);
	for (int i = 0; i < n; i++)
		cin >> v[i];

	sort(v.begin(), v.end());

	int left = 0, right = 1000000003;

	while (left <= right)
	{
		int cleft = c - 2;
		int cc = 0;
		int m = (left + right) / 2;

		for (int i = 0; i < n - 1; i++)
		{
			int d = v[i + 1] - v[i];
			if (cc + d <= m)
				cc += d;
			else
			{
				cleft--;
				cc = 0;
			}
		}

		if (cleft >= 0) right = m - 1;
		else
			left = m + 1;
	}

	cout << left;

	return 0;
}

 

'Algorithm > Binary Search' 카테고리의 다른 글

Baekjoon 1620 나는야 포켓몬 마스터 이다솜  (0) 2019.06.02
BaekJoon 1072 게임  (0) 2019.02.16
Baekjoon 2805 나무 자르기  (0) 2019.02.13
BaekJoon 1920 수찾기  (0) 2019.01.31
BaekJoon 14786 Ax+Bsin(x)=C 2  (0) 2019.01.31