๐ ๋ฌธ์
์์์ ๊ณต ์์ ์ ๋ง๋ฌด๋ฆฌํ ์ฐฌ์ฐ๋ ์ถํ์ ์๋ฏธ๋ก ํ์๋ค์๊ฒ ์ฌํ์ ๋๋์ด ์ฃผ๋ ค ํ๋ค. ๊ตฌ์ฒด์ ์ผ๋ก, ๊ธฐ์ค์ด ๋๋ ์์ด ์๋ ์ ์ $X$๋ฅผ ์ ํ ๋ค ์ต์ข ์ ์๊ฐ $X$์ ์ ๋๋ ํ์๋ค์๊ฒ ์ ์๊ฐ ๋์ ๋งํผ ๋ง์ ์ฌํ์ ์ค ๊ฒ์ด๋ค. ์ฆ, $X+1$์ ์ ๋ฐ์ ํ์์ $1$๊ฐ, $X+2$์ ์ ๋ฐ์ ํ์์ $2$๊ฐ, $T$($T > X$)์ ์ ๋ฐ์ ํ์์ $T - X$๊ฐ์ ์ฌํ์ ๋ฐ๊ฒ ๋๋ค.
์ฐฌ์ฐ๋ ํ์๋ค์๊ฒ ์ต๋ํ ๋ง์ ์ฌํ์ ๋๋์ด์ฃผ๊ณ ์ถ๊ธฐ ๋๋ฌธ์ ๊ธฐ์ค ์ ์ $X$๋ฅผ ๊ฐ๋ฅํ ํ ๋ฎ๊ฒ ์ ํ๋ ค ํ๋ค. ํ์ง๋ง, ์ง๊ธ ๊ฐ์ง๊ณ ์๋ ๋์ผ๋ก๋ ์ฌํ์ $K$๊ฐ๊น์ง๋ง ์ด ์ ์๊ธฐ ๋๋ฌธ์ ์ฌํ์ ์ด ๊ฐ์๊ฐ $K$๊ฐ๋ฅผ ๋์ผ๋ฉด ์ ๋๋ค.
์ฐฌ์ฐ์ ์์ ์ ์ด $N$๋ช ์ด ์๊ฐํ๊ณ , $i$๋ฒ์งธ ํ์์ $A_i$์ ์ ๋ฐ์๋ค. ์๊ฐ์์ ์์ ๊ฐ ํ์์ ์ ์, ์ฌํ์ ์ต๋ ๊ฐ์ $K$๊ฐ ์ฃผ์ด์ง ๋ ์ฐฌ์ฐ๋ฅผ ์ํด ๊ฐ๋ฅํ $X$์ ์ต์๊ฐ์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํด ์ฃผ์.
๐์ ๋ ฅ
์ฒซ์งธ ์ค์ ์ ์ $N$, $K$๊ฐ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋์ด ์ฃผ์ด์ง๋ค. ($1 \leq N \leq 5\times 10^5$; $0 \leq K \leq 10^{12})$โ
๋์งธ ์ค์ $N$๊ฐ์ ์ ์ $A_1, A_2, \dotsm, A_N$์ด ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋์ด ์ฃผ์ด์ง๋ค. $(0 \leq A_i \leq 10^{12})$โ
๐์ถ๋ ฅ
์ฒซ์งธ ์ค์ ๊ฐ๋ฅํ ๊ธฐ์ค $X$์ ์ต์๊ฐ์ ์ถ๋ ฅํ๋ค.
๐ ๋ฌธ์ ํ์ด
X ์ ๋ณด๋ค ๋ฎ์ ์ ์๋ฅผ ๋ฐ์ ํ์๋ค์ ๋ชจ๋ 0๊ฐ์ ์ฌํ์ ๋ฐ๊ฒ ๋๋ค. ๋๋ฌธ์ ์ ์๋ฅผ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ๊ณ ๊ฐ ์ ์๋ง๋ค T-X๋ฅผ ๊ณ์ฐํ๋ค๊ฐ T ๊ฐ X๋ณด๋ค ์์ ๊ฒฝ์ฐ ๋ฉ์ถค์ผ๋ก์จ ๋ถํ์ํ ์ฐ์ฐ๊ณผ ์๊ฐ์ ์ค์ผ ์ ์๋ค. ์ด๋ X๋ ์ด๋ถํ์์ ์ฌ์ฉํ์ฌ ์ฐพ์ ์ ์๋ค.
๐ป ์ฝ๋
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 | import sys input = sys.stdin.readline def canbe(x): res = 0 for num in nums: if num > x: res += num-x else: break return res <= k n,k = map(int,input().split()) nums = list(map(int,input().split())) nums.sort(reverse=True) st,ed = 0, nums[0] res = 0 while st <= ed: mid = (st+ed)//2 if canbe(mid): res = mid ed = mid - 1 else: st = mid + 1 print(res) | cs |
๐ญ ์ํ์ฐฉ์ค
์ํธ์ ์ฑ๊ณตํ์๋ค
๐ ๋ฌธ์ ๋งํฌ
'Problem Solving > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 15944๋ฒ: ์ฑ๊ณต (0) | 2024.11.07 |
---|---|
[๋ฐฑ์ค] 5942๋ฒ: Big Macs Around the World (0) | 2023.09.18 |
[๋ฐฑ์ค] 20560๋ฒ: ๋ง์ง ํ๋ฐฉ (1) | 2023.09.01 |
[๋ฐฑ์ค] 1185: ์ ๋ฝ ์ฌํ (0) | 2023.08.24 |
[๋ฐฑ์ค] 28457๋ฒ: Every? Only One's Marble - ํ์ด์ฌ (0) | 2023.08.13 |