[백준 1654번] 랜선 자르기

2017. 10. 16. 01:42알고리즘/백준

반응형





소스코드


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
#include <iostream>
using namespace std;
 
int main() {
    int n, k;
    long long l = 0, r, a[10001],range=0, Max = 0;
    cin >> k >> n;
    for (int i = 0; i < k; i++) {
        cin >> a[i];
        if (range < a[i])
            range = a[i];
    }
    r = range;
    while(l<=r) {
        long long mid = (l + r) / 2;
        int line = 0;
        for (int i = 0; i < k; i++)
            line += (a[i]/mid);
        
        if (line < n) 
            r = mid-1;
        else {
            l = mid+1;
            if (mid > Max)
                Max = mid;
        }
    }
    cout << Max;
    return 0;
}
cs


반응형