๋ฐฑ์ค (boj) 2217 ํ์ด์ฌ - ๋กํ
๋ฌธ์ ํ์ด : https://www.acmicpc.net/problem/2217
2217๋ฒ: ๋กํ
N(1≤N≤100,000)๊ฐ์ ๋กํ๊ฐ ์๋ค. ์ด ๋กํ๋ฅผ ์ด์ฉํ์ฌ ์ด๋ฐ ์ ๋ฐ ๋ฌผ์ฒด๋ฅผ ๋ค์ด์ฌ๋ฆด ์ ์๋ค. ๊ฐ๊ฐ์ ๋กํ๋ ๊ทธ ๊ตต๊ธฐ๋ ๊ธธ์ด๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋ค ์ ์๋ ๋ฌผ์ฒด์ ์ค๋์ด ์๋ก ๋ค๋ฅผ ์๋ ์๋ค. ํ์ง๋ง ์ฌ๋ฌ ๊ฐ์ ๋กํ๋ฅผ ๋ณ๋ ฌ๋ก ์ฐ๊ฒฐํ๋ฉด ๊ฐ๊ฐ์ ๋กํ์ ๊ฑธ๋ฆฌ๋ ์ค๋์ ๋๋ ์ ์๋ค. k๊ฐ์ ๋กํ๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋์ด w์ธ ๋ฌผ์ฒด๋ฅผ ๋ค์ด์ฌ๋ฆด ๋, ๊ฐ๊ฐ์ ๋กํ์๋ ๋ชจ๋ ๊ณ ๋ฅด๊ฒ w/k ๋งํผ์ ์ค๋์ด ๊ฑธ๋ฆฌ๊ฒ ๋๋ค. ๊ฐ ๋กํ๋ค์ ๋ํ ์ ๋ณด๊ฐ ์ฃผ์ด์ก์ ๋, ์ด ๋กํ๋ค์
www.acmicpc.net
์๋ฅผ๋ค์ด 5๊ฐ์ ๋กํ๊ฐ ์๋ค๊ณ ์๊ฐํด๋ณด๋ฉด : rope = [32,30,25,12,1]
๋กํ๋ฅผ 5๊ฐ 4๊ฐ 3๊ฐ 2๊ฐ 1๊ฐ๊ฐ ์์๋๋ก ์ชผ๊ฐ์ด ์๊ฐํด๋ณด๋ฉด ๋ฌธ์ ๊ฐ ํ๋ฆฐ๋ค.
1๊ฐ ์ผ๋ : 32*1 = 32
2๊ฐ ์ผ๋ : 30*2 = 60
3๊ฐ ์ผ๋ : 25 * 3 = 75
4๊ฐ ์ผ๋ : 12 * 4 = 48
5๊ฐ ์ผ๋ : 1 *5 = 5
์ฆ, ๊ธธ์ด๊ฐ 12์ 1์ธ ๋กํ๋ฅผ ๋นผ๊ณ ๋ฌผ๊ฑด์ ๋ค์์๋ ๊ฐ์ฅ ํจ์จ์ด ์ข๋ค.
(N๋ฒ์งธ ๋กํ์ ๊ธธ์ด * N) ๋ผ๋ ์์ด ์ธ์์ง๋ค.
์ด๋ ๊ฒ ์ฝ๋๋ฅผ ์ง๊ธฐ ์ํด์๋ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌ๋ง ํด์ฃผ๋ฉด ๋๋ค.
n = int(input())
arr = []
for i in range(n):
arr.append(int(input()))
arr.sort(reverse=True)
solution=[]
for i in range(len(arr)):
solution.append(arr[i] * (i+1))
print(max(solution))