Universal Cup Judging System

Universal Cup

时间限制: 1.0 s 内存限制: 1024 MB 总分: 100
统计

Bartek är en välkänd technomusikproducent, och han håller just nu på att finslipa sin nästa hit. Han har skapat ett spår som består av $n$ taktslag (beats), numrerade i följd från $1$ till $n$. Efter att ha tillbringat timmar i ett musikredigeringsprogram skulle han precis exportera mp3-filen, men han märkte att taktslagen för närvarande ligger i ordningen $a_1, a_2, \dots, a_n$. Bartek behöver få en stigande ordning på taktslagen, det vill säga $1, 2, \dots, n$.

Programmet tillåter två typer av operationer:

  • Flytta det sista taktslaget till valfri position, t.ex. $(2, 4, 1, 5, \underline{3}) \to (2, \underline{3}, 4, 1, 5)$.
  • Flytta valfritt taktslag till början, t.ex. $(2, 4, 1, \underline{5}, 3) \to (\underline{5}, 2, 4, 1, 3)$.

Vilket är det minsta antalet operationer som behövs för att ordna taktslagen i stigande ordning?

Indata

Den första raden innehåller ett heltal $n$ ($1 \le n \le 200\,000$), som anger antalet taktslag.

Den andra raden innehåller $n$ parvis olika heltal $a_1, a_2, \dots, a_n$ ($1 \le a_i \le n; a_i \ne a_j$), som representerar den nuvarande ordningen av taktslagen i programmet.

Utdata

Skriv ut ett enda heltal – det minsta antalet operationer som krävs.

Exempel

Indata 1

6
3 2 5 4 1 6

Utdata 1

4

Indata 2

9
3 1 2 5 6 4 9 7 8

Utdata 2

6

Anmärkning

Vi börjar med sekvensen av taktslag $(3, 2, 5, 4, 1, 6)$. Här är ett sätt att uppnå den önskade ordningen på fyra operationer:

  • Flytta det sista taktslaget två steg åt vänster: $(3, 2, 5, \underline{6}, 4, 1)$.
  • Flytta taktslag $2$ till början: $(\underline{2}, 3, 5, 6, 4, 1)$.
  • Flytta taktslag $1$ till början: $(\underline{1}, 2, 3, 5, 6, 4)$.
  • Flytta det sista taktslaget två steg åt vänster: $(1, 2, 3, \underline{4}, 5, 6)$.

Det är möjligt att få en stigande ordning på andra sätt med fyra operationer, men det går inte att göra på tre operationer, så resultatet är $4$.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.