반응형
[ 백준 2805번 나무자르기 ]
#include<iostream>
#include<algorithm>
using namespace std;
long long tree[1000001];
long long n,m,l,r=0,md,sum;
int main()
{
cin>>n>>m;
for(int i=0;i<n;i++)
{
cin>>tree[i];
}
sort(tree,tree+n);
l=0;
r=2000000000;
while(1)
{
md=(l+r)/2;
if(l > r) break;
sum=0;
for(int i=0;i<n;i++)
{
if(tree[i]-md > 0)
sum+=(tree[i]-md);
}
if(sum < m)
{
r=md-1;
}
else if(sum > m)
{
l=md+1;
}
else
{
break;
}
}
cout<<md<<'\n';
return 0;
}
반응형
'백준 문제풀이' 카테고리의 다른 글
백준 1182번 부분수열의 합 소스 코드 - 비트마스크 (0) | 2022.01.06 |
---|---|
백준 2531번 회전초밥 소스 코드 (0) | 2022.01.06 |
백준 2622번 - 삼각형만들기 (0) | 2021.12.10 |
백준 13015번 - 별찍기 23 (0) | 2021.12.08 |
백준 10993번 - 별찍기 18 (0) | 2021.12.08 |