Baltic Olympiad in Informatics 2018 - day 1

Start

2018-04-28 07:00 UTC

Baltic Olympiad in Informatics 2018 - day 1

End

2018-04-28 12:00 UTC
The end is near!
Contest is over.
Not yet started.
Contest is starting in -225 days 22:59:32

Time elapsed

5:00:00

Time remaining

0:00:00

Problem B
Marsiečių DNR

Kaip tikriausiai jau žinote, žmonių DNR gali būti vaizduojami ilga eilute, kurioje galimos tik keturios raidės (A, C, G, T). Kiekviena šių raidžių vaizduoja atitinkamą skirtingą nukleotidą (atitinkamai, adeniną, citoziną, guaniną ir timiną).

Tuo tarpu su marsiečiais yra kiek kitaip – ištyrus paskutinį NASA pagautą marsietį paaiškėjo, kad marsiečių DNR susideda iš $K$ skirtingų nukleotidų. Todėl marsiečių DNR kodas gali būt aprašytas kaip simbolių eilutė, kurioje galimi $K$ skirtingų simbolių.

Viena tyrėjų grupė, besidominti marsiečių DNR naudojimu dirbtiniam intelektui, paprašė vientiso marsiečio DNR posekio. Be to, kiekvienam iš pasirinktų $R$ nukleotidų jie nurodė, kiek mažiausiai to nukleotido turi būti šiame posekyje.

Jus domina trumpiausias vientisas DNR posekis, tenkinantis šias sąlygas.

Pradiniai duomenys

Pirmoje eilutėje pateikti trys sveikieji skaičiai $N$, $K$ ir $R$, atitinkamai nurodantys marsiečio DNR ilgį, skirtingų nukleotidų skaičių ir skaičių nukleotidų, kuriems mokslininkai turi minimalaus kiekio reikalavimus. Šie skaičiai tenkina sąlygas $1 \le R \le K \le N$.

Antroje eilutėje yra $N$ tarpais atskirtų skaičių – pilna marsiečio DNR seka. $i$-asis šių skaičių, $D_ i$, nurodo, koks nukleotidas yra $i$-ojoje DNR sekos pozicijoje. Nukleotidai numeruojami nuo nulio, t.y., $0 \leq D_ i < K$. Visi nukleotidai DNR sekoje pasitaikys bent po vieną kartą.

Kiekvienoje tolesnių $R$ eilučių pateikta po du skaičius $B$ ir $Q$, nurodančius nukleotidą ir minimalų jo kiekį ($0 \le B < K, 1 \le Q \le N$). Šiose $R$ eilučių pasikartojančių nukleotidų nebus.

Rezultatai

Išveskite vieną sveikąjį skaičių – trumpiausio vientiso DNR posekio, tenkinančio mokslininkų reikalavimus, ilgį. Jei tokio posekio nėra, išveskite “impossible”.

Ribojimai

Jūsų sprendimas bus testuojamas su keliomis testų grupėmis, kiekviena kurių vertinama tam tikru skaičiumi taškų. Kiekvieną testų grupę sudarys keletas testų. Taškai už testų grupę skiriami tik jei įveikiate visus tos grupės testus.

Grupė

Taškai

Ribojimai

1

16

$1 \le N \le 100, R \le 10$

2

24

$1 \le N \le 4\, 000, R \le 10$

3

28

$1 \le N \le 200\, 000, R \le 10$

4

32

$1 \le N \le 200\, 000$

Pavyzdžių paaiškinimai

Pirmajame pavyzdyje yra trys tinkami vientisi posekiai, kurių ilgis $2$. Jie visi turi po vieną nukleotidą $0$ ir $1$ ( “0 1”, “1 0” ir “0 1”), bet nėra jokių tinkamų vientisų posekių, kurių ilgis $1$. Todėl trumpiausias ilgis yra $2$.

Antrajame pavyzdyje vienintelis optimalus posekis yra “1 3 2 0 1 2 0”.

Trečiajame pavyzdyje neužtenka nulinio tipo nukleotidų.

Pradiniai duomenys 1 Rezultatai 1
5 2 2
0 1 1 0 1
0 1
1 1
2
Pradiniai duomenys 2 Rezultatai 2
13 4 3
1 1 3 2 0 1 2 0 0 0 0 3 1
0 2
2 1
1 2
7
Pradiniai duomenys 3 Rezultatai 3
5 3 1
1 2 0 1 2
0 2
impossible