배열 점수 최대화

면접 대비

시간 제한2초메모리 제한1024 MB

요약
V=K에서 시작해 N번의 연산( V를 추가하고 1 감소, 또는 V를 1 증가)을 하되 추가는 한 번 이상 하며, 배열 길이와 위쪽 중앙값의 곱이 최대가 되도록 만든다.
난이도

보통10점 중 6점

유형
그리디, 수학, 구현, 정렬
정답자
아직 제출이 없습니다

문제

초깃값이 양의 정수 KK인 변수 VV가 있다. 쿠는 초기에 원소가 없는 배열 AA에 아래의 연산을 총 NN번 수행하려고 한다.

  • 11번 행동과 22번 행동 중 한 가지를 골라서 수행한다.

    • 11번 행동은 배열 AA 뒤에 VV를 추가한 이후, VV를 11만큼 감소시킨다.
    • 22번 행동은 VV를 11만큼 증가시킨다.

11번 행동은 반드시 한 번 이상 수행해야 하며, 연산 중 VV가 음수가 될 수 있음에 유의하라.

배열 AA의 점수란 AA의 길이와 AA의 중앙값의 곱이다. 중앙값이란 AA의 길이를 MM이라고 할 때, AA를 오름차순으로 정렬했을 때의 \lceil$$\frac{M}{2}$$\rceil번째 원소이다. 예를 들어 \[1,2,1]\[1, 2, 1]의 중앙값은 11이고, \[2,4,3,1]\[2, 4, 3, 1]의 중앙값은 22이다.

NN번의 연산을 마친 후, 배열 AA의 점수가 최대가 되도록 하고 싶다. 연산을 최적으로 할 때 얻을 수 있는 배열의 점수의 최댓값을 구해보자.

입력

연산의 횟수, 변수 VV의 초깃값을 의미하는 정수 NN, KK가 공백으로 구분되어 주어진다. (1≤N,K≤100,000)(1\leq N, K\leq 100\\, 000)

출력

연산을 최적으로 할 때 얻을 수 있는 배열의 점수의 최댓값을 출력한다.

힌트

⌈X⌉\left\lceil X \right\rceil는 올림 함수로써 XX보다 크거나 같은 정수 중 최솟값을 의미합니다. 예를 들어 ⌈52⌉=3\left\lceil \frac{5}{2}\right\rceil = 3, ⌈4⌉=4\left\lceil 4\right\rceil = 4입니다.

예제1

  1. 예제 1

    입력
    4 2
    
    예상 출력
    6