문제: icpc.me/3079
X시간 동안 심사할 수 있는 인원 수는 Sum(i: 0~N) X/T[i] 로 정의할 수 있다.
이를 이용하여 파라메트릭 서치로 답을 구해주면 된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #include <cstdio> #include <algorithm> typedef long long ll; using namespace std; ll n, m, a[100001]; int main() { scanf("%lld%lld", &n, &m); for (int i = 0; i < n; i++) scanf("%lld", &a[i]); ll lo = 0; ll hi = 1e18 + 5; while (lo < hi) { ll mid = (lo + hi) >> 1; ll cnt = 0; for (int i = 0; i < n; i++) cnt += mid / a[i]; if (cnt >= m) hi = mid; else lo = mid + 1; } printf("%lld\n", lo); return 0; } | cs |
'알고리즘 관련 > BOJ' 카테고리의 다른 글
BOJ)14501 퇴사 (0) | 2017.04.17 |
---|---|
BOJ)14502 연구소 (2) | 2017.04.17 |
BOJ)2820 자동차 공장 (0) | 2017.04.13 |
BOJ)7573 고기잡이 (0) | 2017.04.12 |
BOJ)1202 보석 도둑 (0) | 2017.04.12 |