Search
Duplicate
🥑

예산

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

Memo

Memory : 2024

Time : 0

Code

#include<bits/stdc++.h> using namespace std; int arr[10001]; int main(){ int n,m; scanf("%d",&n); int b,t=0; for(int i=0;i<n;i++){ scanf("%d",&arr[i]); t = (arr[i]>t)?arr[i]:t; } scanf("%d",&m); b = m/n; int mid; int sum; while(b <= t){ sum = 0; mid = (b+t)/2; for(int i=0;i<n;i++){ if(arr[i] > mid) sum += mid; else sum += arr[i]; } if(sum <= m) b = mid+1; else t = mid-1; } sum = 0; for(int i=0;i<n;i++){ if(arr[i] > mid) sum += mid; else sum += arr[i]; } if(sum > m) mid -= 1; printf("%d",mid); }
C++
복사