반응형
이분탐색 문제입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | //랜선을 잘랐을 때 개수가 N보다 작으면 x값을 줄인다. // " N보다 크면 x값을 늘린다. #include <iostream> using namespace std; long long k,n,a[10001],cnt,l,r,big,ans; int main() { cin >> k >> n; for (int i = 0; i < k; i++) { cin >> a[i]; if (big < a[i])//최대값을 저장 big = a[i]; } l = 1; r = big; while (l<=r) { long long mid = (l+r) / 2; cnt = 0; for (int i = 0; i < k; i++) cnt += a[i] / mid; if (cnt < n) { r = mid-1; }//랜선을 자른 결과가 만드려는 랜선의 개수보가 작다면 랜선을 더 작게 잘라야함 그러므로 mid-1 else //랜선을 더 크게 잘라야할 경우 { if (ans < mid) { ans = mid; }//가장 큰 값을 저장 l = mid + 1; } } cout << ans << '\n'; } | cs |
'Algorithm' 카테고리의 다른 글
C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 5554번:심부름 가는 길 답 (0) | 2017.02.27 |
---|---|
초대장 배포해드려요!! (0) | 2017.02.27 |
C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 5086번:배수와 약수 답 (0) | 2017.02.26 |
(C++) - 백준(BOJ)코딩 10807 : 개수 세기 답 (0) | 2017.02.26 |
C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 2884번:알람시계 답 (0) | 2017.02.26 |