Xếp Hàng Tăng Dần


Submit solution

Points: 3
Time limit: 1.0s
Java 8 2.0s
Memory limit: 250M

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

Chef Vin là một đầu bếp rất nổi tiếng, cửa hàng của anh ta luôn đông kín người và thậm chí phải xếp hàng. Tại hàng chờ, mỗi người sẽ được phát một phiếu số thứ tự. Do quá đông và thời gian làm món khá lâu nên mọi người thường đi dạo sau đấy quay lại để thưởng thức các món ăn. Tuy nhiên, khi quay lại mọi người lại xếp hàng rất lộn xộn không theo thứ tự. Do vậy, nhân viên nhà hàng đã phải xếp lại hàng chờ theo đúng thứ tự tăng dần của phiếu xếp hàng.

Quy tắc sau: Chọn bất kỳ một người và xếp người đó xuống cuối hoặc lên đầu của hàng chờ.

Người nhân viên nhờ bạn giúp tính xem số lần di chuyển ít nhất cần thực hiện để xếp hàng theo đúng thứ tự tăng dần.

Input:

Dòng dầu tiên gồm 1 số nguyên T là số lượng testcase.

Với mỗi testcase

  • Dòng đầu tiên là số nguyên N là số lượng người trong hàng chờ \(( 1 \le N \le 10^5)\)
  • Dòng tiếp theo là N số nguyên \(A_i\) tương ứng số trên các phiếu xếp hàng. Từ 1 <= A[i] <= N. \(( 1 \le A_i \le 10^5)\)

Output:

Với mỗi testcase in ra đáp án theo định dạng #Case T: X với T là thứ tự testcase hiện tại và X là số lần di chuyển ít nhất cần thực hiện để xếp hàng theo đúng thứ tự tăng dần.

Example:

Input:

1
4
2 1 4 3

Output:

#Case 1: 2

Explain:

- Bước 1: Chuyển 1 lên đầu tiên của hàng: [2 1 4 3] -> [1 2 4 3]
- Bước 2: Chuyển 4 xuống cuối của hàng: [1 2 4 3] -> [1 2 3 4]

Comments

There are no comments at the moment.