- toc {:toc}
νμ΄
μ΅λ κΈΈμ΄λ₯Ό ꡬν΄μΌ νκΈ° λλ¬Έμ λ΄κ° λ§λ λμ μ μμ νμν κ°μμ κ°λ€κ³ λ°λ‘ κ°μ λ°ννλ©΄ μ λλ€. μ¬λ¬ κ²½μ°κ° λμ¬ μ μκΈ° λλ¬Έμ΄λ€. 11κ°κ° νμν λ 802, 743, 457, 539 μ κ²½μ°λ§ νλλΌλ 200μ΄ λ΅μ΄μ§λ§ 199, 198, β¦ λ§μ λ΅μ΄ λμ¬ μ μκ³ μ΄ μ€ μ΅λμ κ°μ κ°μ ΈμΌ νλ€. λλ¬Έμ κ°μ λμλ κ³μν΄μ mid+1λ‘ κ°±μ νλ©° startκ° endλ³΄λ€ ν¬κ² λλ κ²½μ°λ endκ° λ μ΄μ μ»€μ§ μ μλ κ²κ³Ό λ§μ°¬κ°μ§μ΄κΈ° λλ¬Έμ endλ₯Ό λ°ννλ€.
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
int K, N;
int lan[10005];
int search(LL start, LL end){
LL sum, mid;
while(start <= end){
sum = 0;
mid = (start + end)/2;
for(int i=0; i<K; i++){
sum += lan[i] / mid;
}
if (sum >= N) start = mid + 1;
else end = mid - 1;
}
return end;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(); cout.tie();
LL val, high=0;
cin >> K >> N;
for(int i=0; i<K; i++){
cin >> lan[i];
if (high < lan[i]) high=lan[i];
}
cout << search(1, high) << '\n';
return 0;
}