AI Armagedon

시간 제한1초메모리 제한2048 MB

요약
N개의 티셔츠가 순서대로 도착할 때, 스크립트를 K개의 더미 중 하나에 두고 스크립트가 있는 더미에 티셔츠가 올 때마다 옮겨야 한다. 총 이동 횟수의 최솟값을 구한다.
난이도

보통10점 중 6점

유형
동적 계획법, 그리디, 해시맵
정답자
아직 제출이 없습니다

문제

Nakon što je umjetna inteligencija preuzela poslove svih informatičara i matematičara, Stjepan se zaposlio u trgovini s odjećom kako bi prehranio obitelj.

Jednog dana Stjepan je dobio zadatak da posloži novopridošle majice na već postojeće hrpe. U dućanu postoji KK vrsta majica (pa tako i hrpa). Stjepan će redom dobiti ukupno NN majica te svaku staviti na hrpu koja odgovara vrsti majice.

Stjepan sa sobom i dalje vjerno nosi matematičku skriptu sa zadacima u nadi da će se jednog dana njegove vještine opet pokazati korisnima. Problem nastaje u tome što Stjepan ne želi skriptu odložiti na pod kako se ne bi uprljala pa će je zato odložiti na neku od hrpa.

Svaki put kada Stjepan treba staviti majicu na hrpu na kojoj se nalazi skripta, mora premjestiti skriptu na neku drugu hrpu.

Stjepana psihički i fizički umara konstantno premještanje skripte te ne može prestati razmišljati: "Kad bih znao redoslijed kojim majice dolaze, mogao bih rjeđe premještati skriptu". Možete li pomoći Stjepanu riješiti ovaj problem?

입력

U prvom retku nalaze se dva prirodna broja: broj novih majici koje će pristići NN (1≤N≤1061 ≤ N ≤ 10^6) i broj hrpa KK (2≤K≤1092 ≤ K ≤ 10^9).

U svakom od sljedećih NN redaka nalazi se po jedan prirodni broj a_ia\_i (1≤a_i≤K1 ≤ a\_i ≤ K), koji označava hrpu na koju treba staviti ii-tu majicu. Brojevi su dani u redoslijedu kojim Stjepan dobiva majice.

출력

Program treba ispisati jedan prirodni broj – najmanji mogući broj premještanja skripte koje Stjepan mora napraviti tijekom postavljanja majica. Na početku skripta može biti postavljena na bilo koju hrpu.

힌트

Pojašnjenje prvog probnog primjera: Prije početka Stjepan može staviti skriptu na hrpu 11 (ovo ne računamo kao premještanje). Zatim dok pristigne druga majica, on premjesti skriptu na hrpu 33. Nakon toga, dok pristigne šesta majica, on premjesti skriptu natrag na hrpu 11. Nije moguće postići manje premještanja, no ovo nije jedini način premještanja skripte.

예제2

  1. 예제 1

    입력
    8 3
    3
    1
    2
    1
    1
    3
    3
    2
    
    예상 출력
    2
    
  2. 예제 2

    입력
    1 2
    1
    
    예상 출력
    0