https://www.acmicpc.net/problem/1654
#include<stdio.h>
long long k;
long long Lan[20000]; //원소는 초기화 됨.
long long div(long long len) //len로 자르기.
{
long long sum = 0;
for(int i=0; i<k; i++)
{
sum += (Lan[i]/len);
}
return sum;
}
int main(void)
{
long long n;
long long max = 0;
scanf("%lld %lld", &k, &n);
for(int i=0; i<k; i++)
{
scanf("%lld", &Lan[i]);
if(max<Lan[i])
{
max = Lan[i]; //최대 원소값 찾기
}
}
long long s = 1;
long long e = max; //mid의 범위를 1~최대 원소값까지로 고정.
long long mid;
long long res;
long long res2 = -1;
while(s<=e)
{
mid = (s+e)/2;
res = div(mid); //res는 조각의 개수.
//
if(res >= n)
{
if(res2 < mid) {
res2 = mid;
}
s=mid+1;
}
else
{
e=mid-1;
}
}
printf("%lld\n", res2);
return 0;
}
'정보올림피아드-KOI > BOJ' 카테고리의 다른 글
백준 : 개구리 점프: 17619번 - 2019 정보올림피아드 2차 중등 2번문제 (0) | 2020.03.17 |
---|---|
부분수열의 합 - 1182 (0) | 2020.03.01 |
10816번 숫자 카드 2 (0) | 2020.02.16 |
백준 - 숫자카드 : 10815번 (0) | 2020.02.10 |
백준 : 1로 만들기 1463번 (0) | 2020.02.09 |