본문 바로가기

알고리즘문제풀이

[백준14627]파닭파닭

반응형

종류:이분탐색

주의점: 범위에 주의

 


문제는 요기 ->https://www.acmicpc.net/problem/14627



#include<iostream>

using namespace std;


long long int N, C;//파의개수, 주문받은 파닭의 수 

long long int arr[10000002];

long long int ans;

long long int ramen;

long long int sum = 0;

long long int  Func()

{

long long int left = 1;

long long int right = 1000000000;

while (left <= right)

{

long long int mid = (left + right) / 2;

long long int cnt = 0; //파닭에 담을수 있는 파의 길이 

for (long long int i = 1; i <= N; i++)

{

cnt += arr[i] / mid;

}

if (cnt >= C) //파의 양이 더많으면 파의 길이를 더 늘리기

{

if(mid>ans)

    ans = mid;

left = mid+1;

}

else

{

right = mid - 1;

}

}

return sum - ans*C;

}

int main()

{

scanf("%lld %lld", &N, &C);

for (long long int i = 1; i <= N; i++)

{

scanf("%lld", &arr[i]);

sum += arr[i];

}

printf("%lld\n", Func());

}

반응형

'알고리즘문제풀이' 카테고리의 다른 글

[백준14502]연구소  (0) 2019.02.12
[백준 2151]거울설치  (0) 2019.02.12
[백준 14890]경사로  (0) 2017.12.05
[백준 14889]스타트와 링크  (0) 2017.11.30
[백준 14891]톱니바퀴  (0) 2017.11.30