Max + 1


Submit solution

Points: 1.5 (partial)
Time limit: 1.0s
Memory limit: 977M

Author:
Problem type
Allowed languages
Ada, Assembly, Awk, C, C++, C11, CLANG, CLANGX, Classical, COBOL, Coffee, CSC, D lang, DART, F95, FORTH, Fortrn, GAS32, GO, Haskell, Itercal, Java, kotlin, LEAN, LISP, LUA, MONOVB, Nasm, OCAML, Pascal, Perl, php, PIKE, prolog, Pypy, Python, Ruby 2, RUST, Scala, SCM, SED, SWIFT, TCL, TUR, V8JS, VB, ZIG

Cho dãy \((a)\) gồm \(n\) số nguyên, kí hiệu \(max(i)\) là số lớn nhất trong \(i\) số đầu tiên. Vỡi mỗi số nguyên dương \(i\), bạn có thể đổi số thứ \(i\) trong dãy thành \(max(i) + 1\).

Cần thực hiện ít nhất bao nhiêu lần đổi như vậy để thu được một dãy số tăng chặt ?

Đầu vào

Dòng đầu tiên chứa số nguyên \(n\), số phần tử của dãy số \((2 \le n \le 2*10^5)\).

Dòng tiếp theo chứa \(n\) số nguyên trong khoảng \([-10^6, 10^6]\), các phần tử của dãy số.

Đầu ra

Một số nguyên duy nhất là kết quả của bài toán.

Ví dụ

Đầu vào 1:

3
1 1 1

Đầu ra 1:

2

Giải thích: đổi số thứ \(2\) và số thứ \(3\) thu được dãy \(1, 2, 3\) tăng chặt.

Đầu vào 2:

8
1 2 5 2 6 8 6 3

Đầu ra 2:

4
QDUY

Comments

There are no comments at the moment.