아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Matbeställning

시간 제한2초메모리 제한1024 MB

요약
친구들이 주문하는 서로 다른 음식의 수를 k개 이상으로 만들기 위해 Anthony가 지불해야 하는 최소 금액을 구한다. 불가능하면 -1을 출력한다.
난이도

보통10점 중 6점

유형
그리디, 정렬
정답자
아직 제출이 없습니다

문제

Anthony och hans nn vänner är på restaurang och ska beställa mat. Menyn har mm rätter, och alla vännerna har från början valt rätter som de vill ha. Anthony blir dock gladare ju fler olika rätter sällskapet beställer, så att han får se mer av vad restaurangen har att erbjuda. Han kan till och med tänka sig att betala för vännernas mat för att höja antalet olika beställda rätter.

Idag vill Anthony att vännerna ska beställa minst kk olika rätter. Han kan få en vän att byta beställning till en dyrare rätt genom att betala mellanskillnaden mellan kostnaden för vännens ursprungliga val och den dyrare rätten (men varje person beställer fortfarande bara en sak). Han kan göra så många sådana byten som han vill.

Givet antalet rätter, deras kostnader, och vännernas ursprungliga beställningar, vad är det minsta Anthony behöver betala för att kunna se till att vännerna beställer minst kk olika rätter?

입력

Den första raden innehåller tre heltal nn, mm och kk, antalet vänner, antalet rätter och det önskade antalet unika beställningar (1≤n,m≤2⋅1051 \leq n, m \leq 2 \cdot 10^5, 1≤k≤n1 \le k \le n). \\ Därefter kommer en rad med nn heltal x_1…x_nx\_1 \dots x\_n, där x_ix\_i (1≤x_i≤m1 \leq x\_i \leq m) är den rätt som vän ii från början vill köpa. \\ Därefter kommer en rad med mm heltal c_1…c_mc\_1 \dots c\_m, där c_ic\_i (1≤c_i≤1091 \leq c\_i \leq 10^9) är kostnaden för rätt ii.

출력

Ett heltal, det minsta beloppet som Anthony behöver betala för att vännerna ska beställa minst kk olika rätter. Om det är omöjligt, skriv ut −1-1. Notera att svaret inte nödvändigtvis får plats i ett 3232-bitars heltal.

힌트

I det första exempelfallet kan Anthony betala 22 kronor för att vän 11 ska byta från den första till den tredje rätten. Efter det beställs 33 unika rätter: rätt 11, rätt 22 och rätt 33.

I det andra exempelfallet finns det två rätter som båda kostar 1010 kronor, och båda vännerna har valt den första rätten. Då det inte finns någon dyrare rätt än den första kan inte Anthony göra något för att ändra vännernas val, och kan aldrig uppnå 22 unika rätter. Svaret blir då −1-1.

I det tredje exempelfallet vill vännerna redan ha två olika rätter, så Anthony behöver inte betala någonting.

I det sista exempelfallet vill Anthony se till att alla 88 vänner beställer olika rätter. Det billigaste alternativet här är att betala för att vän 33, 44, 77 och 88 ska uppgradera till en av 1,000,000,0001\\,000\\,000\\,000-kronorsrätterna. Totalt kostar det 3,999,999,9903\\,999\\,999\\,990 kronor.

예제4

  1. 예제 1

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

    입력
    2 2 2
    1 1
    10 10
    
    예상 출력
    -1
    
  3. 예제 3

    입력
    2 2 1
    1 2
    10 10
    
    예상 출력
    0
    
  4. 예제 4

    입력
    8 8 8
    1 2 3 4 1 2 3 4
    1 2 3 4 1000000000 1000000000 1000000000 1000000000
    
    예상 출력
    3999999990