티스토리 뷰

https://www.acmicpc.net/problem/14627

 

14627번: 파닭파닭

첫째 줄에 승균이가 시장에서 사 온 파의 개수 S(1≤S≤1,000,000), 그리고 주문받은 파닭의 수 C(1≤C≤1,000,000)가 입력된다. 파의 개수는 항상 파닭의 수를 넘지 않는다. (S≤C) 그 후, S 줄에 걸쳐 파

www.acmicpc.net

const fs = require('fs');
const input = fs.readFileSync("./dev/stdin").toString().trim().split("\n")
const [S, C] = input.shift().split(' ').map(Number);
const pa = input.map(Number);
const pa_sum = pa.reduce((r, v) => r + v, 0);
let min = 1;
let max = 1000000000;

let pa_res = 0;
while (min <= max) {
  let mid = Math.floor((min + max) / 2);
  let cnt = 0;
  for (let i = 0; i < S; i++) {
    cnt += Math.floor(pa[i] / mid);
  }
  if (cnt >= C) {
    if (pa_res < mid) {
      pa_res = mid;
    }
    min = mid + 1;
  } else {
    max = mid - 1;
  }
}
console.log(pa_sum - C * pa_res)
728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함