Search
Duplicate
🥑

나무 자르기

주차
14
문제번호
2805
언어
C++
티어
실버
유형
이분탐색
nj_Blog
nj_상태
완료
이해도
풀이
사람
이해도 2
13 more properties

Memo

Memory : 5020 KB

Time : 224 ms

Code

#include<stdio.h> #pragma warning(disable:4996) int tree[1000001]; int main() { int N, M; scanf("%d %d", &N, &M); long long int sum; int cut,bot,top; for (int i = 0; i < N; i++) { scanf("%d", &tree[i]); } bot = 0; top = 1000000001; while (bot+1 != top) { sum = 0; cut = (bot + top) / 2; for (int i = 0; i < N; i++) { if (tree[i] > cut) { sum += tree[i]-cut; } } if (sum >= M) { bot = cut; } else { top = cut; } } printf("%d", bot); }
C++
복사