Logo
(追記) (追記ここまで)

32939번 - 블록 쌓기

시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 1024 MB132595354.082%

문제

$N$개의 칸이 일렬로 나열되어 있고 이 위에 블록들을 쌓으려고 한다. 초기에 쌓인 블록은 없으며 다음과 같은 시행으로 블록을 쌓을 수 있다.

  • 1ドル \leq l \leq r \leq N$인 두 정수 $l,ドル $r$을 골라 $l \leq i \leq r$을 만족하는 모든 $i$에 대해 $i$번째 칸에 블록을 한개씩 쌓는다. 이 때 $(r-l+1)^2$ 만큼의 비용이 든다.

목표는 1ドル \leq i \leq N$인 모든 $i$에 대해 $i$번째 칸에 있는 블록의 개수가 $a_i$개가 되도록 하는 것이다. 이 때 필요한 시행의 최소 횟수와 시행을 최소로 할 때 비용의 최솟값을 구하여라.

입력

첫 번째 줄에 칸의 개수를 나타내는 정수인 $N$이 주어진다. $(1\leq N \leq 300\ 000)$

두 번째 줄에 $a_1, a_2, \cdots ,a_N$이 공백으로 구분되어 주어진다. $(0\leq a_i \leq 1\ 000\ 000)$

출력

시행의 최소 횟수와 시행을 최소로 할 때 비용의 최솟값을 공백으로 구분하여 출력한다.

제한

예제 입력 1

4
3 2 3 2

예제 출력 1

4 30

힌트

출처

University > 서울시립대학교 > 2024 서울시립대학교 프로그래밍 경진대회 (UOSPC) > Div. 1 H번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /