Takahaši a Aoki hrají hru s kartami N. Na přední straně i-té karty je napsáno A_i a na zadní straně B_i. Na začátku je na stole vyloženo N karet. Jako první jde na řadu Takahaši a oba hráči se střídají v provádění následujících operací:

- Zvolí si dvojici karet ze stolu tak, aby čísla na jejich předních stranách byla stejná nebo aby čísla na jejich zadních stranách byla stejná, a tyto dvě karty odstraní ze stolu. Pokud taková dvojice karet neexistuje, hráč nemůže tuto operaci provést.

Hráč, který jako první nemůže operaci provést, prohrává a druhý hráč vyhrává.
Určete, kdo vyhraje, pokud oba hráči hrají optimálně.

Vstup

Vstup je zadán ze standardního vstupu v následujícím formátu:
N
A_1 B_1
A_2 B_2
\vdots
A_N B_N

Výstup

Vypište Takahashi, pokud Takahashi vyhraje, když oba hráči hrají optimálně, a Aoki v opačném případě.

Omezení

- 1 \leq N \leq 18
- 1 \leq A_i, B_i \leq 10^9
- Všechny vstupní hodnoty jsou celá čísla.

Ukázka Vstup 1

5
1 9
2 5
4 9
1 4
2 5

Ukázka výstupu 1

Aoki

Pokud Takahashi nejprve odstraní

-
první a třetí kartu: Aoki může vyhrát, pokud odstraní druhou a pátou kartu.

-
první a čtvrtou kartu: Aoki může vyhrát, když odstraní druhou a pátou kartu.

-
druhou a pátou kartu: Aoki může vyhrát, když odstraní první a třetí kartu.

Toto jsou jediné tři páry karet, které může Takahaši odstranit ve svém prvním tahu, a Aoki může vyhrát ve všech případech. Odpověď tedy zní: Aoki.

Vzorový vstup 2

9
3 2
1 7
4 1
1 8
5 2
9 8
2 1
6 8
5 2

Ukázka výstupu 2

Takahashi

Takahashi a Aoki hrají hru s použitím N karet. Na přední straně i-té karty je napsáno A_i a na zadní straně je napsáno B_i. Na začátku jsou karty rozloženy na stole. Takahashi začíná a dva hráči se střídají v provádění následující operace:

- Vyberte dvojici karet ze stolu tak, aby buď čísla na jejich předních stranách byla stejná, nebo čísla na jejich zadních stranách byla stejná, a tyto dvě karty odeberte ze stolu. Pokud taková dvojice karet neexistuje, hráč nemůže provést operaci.

Hráč, který jako první nemůže provést operaci, prohrává, a druhý hráč vyhrává.
Určete, kdo vyhrává, pokud oba hráči hrají optimálně.

Vstup

Vstup je zadán ze standardního vstupu v následujícím formátu:
N
A_1 B_1
A_2 B_2
\vdots
A_N B_N

Výstup

Vytiskněte "Takahashi" pokud Takahashi vyhrává, když oba hráči hrají optimálně, a "Aoki" v opačném případě.

Omezení

- 1 \leq N \leq 18
- 1 \leq A_i, B_i \leq 10^9
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

5
1 9
2 5
4 9
1 4
2 5

Ukázkový výstup 1

Aoki

Pokud Takahashi nejprve odstraní

- první a třetí kartu: Aoki může vyhrát odstraněním druhé a páté karty.

- první a čtvrtou kartu: Aoki může vyhrát odstraněním druhé a páté karty.

- druhou a pátou kartu: Aoki může vyhrát odstraněním první a třetí karty.

To jsou jediné tři páry karet, které může Takahashi v prvním pohybu odstranit, a Aoki může vyhrát ve všech případech. Proto je odpověď Aoki.

Ukázkový vstup 2

9
3 2
1 7
4 1
1 8
5 2
9 8
2 1
6 8
5 2

Ukázkový výstup 2

Takahashi

Takahashi a Aoki hrají hru s N kartami. Na přední straně i-té karty je napsáno A_i a na zadní straně je napsáno B_i. Na začátku je na stůl vyloženo N karet. Když je Takahashi první, dva hráči se střídají v provádění následující operace:

- Vyberte si pár karet ze stolu tak, aby čísla na jejich předních stranách byla stejná, nebo čísla na zadních stranách, a odstraňte tyto dvě karty ze stolu. Pokud žádný takový pár karet neexistuje, hráč nemůže operaci provést.

Hráč, který jako první nebude schopen provést operaci, prohrává a vyhrává druhý hráč.
Určete, kdo vyhraje, pokud oba hráči hrají optimálně.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N
A_1 B_1
A_2 B_2
\vdots
A_N B_N

Výstup

Vytisknout Takahashi, pokud Takahashi vyhraje, když oba hráči hrají optimálně, a Aoki jinak.

Omezení

- 1 \leq N \leq 18
- 1 \leq A_i, B_i \leq 10^9
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

5
1 9
2 5
4 9
1 4
2 5

Ukázkový výstup 1

Aoki

Pokud Takahashi nejprve odstraní

-
první a třetí karta: Aoki může vyhrát odstraněním druhé a páté karty.

-
první a čtvrtá karta: Aoki může vyhrát odstraněním druhé a páté karty.

-
druhá a pátá karta: Aoki může vyhrát odstraněním první a třetí karty.

Toto jsou jediné tři páry karet, které může Takahashi odstranit ve svém prvním tahu, a Aoki může ve všech případech vyhrát. Proto je odpověď Aoki.

Ukázkový vstup 2

9
3 2
1 7
4 1
1 8
5 2
9 8
2 1
6 8
5 2

Ukázkový výstup 2

Takahashi


Takahaši má N karet z karetní hry „AtCoder Magics“. I-tá karta se bude nazývat karta i. Každá karta má dva parametry: sílu a cenu. Karta i má sílu A_i a náklady C_i.
Slabé karty nemá rád, proto je vyřadí. Konkrétně bude opakovat následující operaci, dokud ji již nebude možné provést:

- Zvolí dvě karty x a y tak, že A_x > A_y a C_x < C_y. Odhodí kartu y.

Lze dokázat, že množina zbývajících karet, když už operace nelze provést, je jednoznačně určena. Najděte tuto množinu karet.

Vstup

Vstup je zadán ze standardního vstupu v následujícím formátu:
N
A_1 C_1
A_2 C_2
\vdots
A_N C_N

Výstup

Nechť zbývá m karet, karty i_1, i_2, \dots, i_m, ve vzestupném pořadí. Vypište je v následujícím formátu:
m
i_1 i_2 \cdots i_m

Omezení

- 2 \leq N \leq 2 \times 10^5
- 1 \leq A_i, C_i \leq 10^9
- A_1, A_2, \dots ,A_N jsou všechny různé.
- C_1, C_2, \dots ,C_N jsou všechny různé.
- Všechny vstupní hodnoty jsou celá čísla.

Vzorový vstup 1

3
2 4
1 1
3 2

Vzorový výstup 1

2
2 3

Zaměříme-li se na karty 1 a 3, zjistíme, že A_1 < A_3 a C_1 > C_3, takže kartu 1 můžeme vyřadit.
Žádné další operace nelze provést. V tuto chvíli zbývají karty 2 a 3, takže je vytiskneme.

Vzorový vstup 2

5
1 1
10 2
100 3
1000 4
10000 5

Vzorový výstup 2

5
1 2 3 4 5

V tomto případě nelze vyřadit žádné karty.

Vzorový vstup 3

6
32 101
65 78
2 29
46 55
103 130
52 40

Vzorový výstup 3

4
2 3 5 6

Takahashi má N karet z karetní hry „AtCoder Magics“. I-tá karta se bude nazývat karta i. Každá karta má dva parametry: sílu a cenu. Karta i má sílu A_i a náklady C_i.
Slabé karty nemá rád, proto je vyřadí. Konkrétně bude opakovat následující operaci, dokud ji již nebude možné provést:

- Zvolí dvě karty x a y tak, že A_x > A_y a C_x < C_y. Odhodí kartu y.

Lze dokázat, že množina zbývajících karet, když už operace nelze provést, je jednoznačně určena. Najděte tuto množinu karet.

Vstupní údaje

Vstup je zadán ze standardního vstupu v následujícím formátu:
N
A_1 C_1
A_2 C_2
\vdots
A_N C_N

Výstup

Nechť zbývá m karet, karty i_1, i_2, \dots, i_m, ve vzestupném pořadí. Vypište je v následujícím formátu:
m
i_1 i_2 \cdots i_m

Omezení

- 2 \leq N \leq 2 \times 10^5
- 1 \leq A_i, C_i \leq 10^9
- A_1, A_2, \dots ,A_N jsou všechny různé.
- C_1, C_2, \dots ,C_N jsou všechny různé.
- Všechny vstupní hodnoty jsou celá čísla.

Ukázka vstupu 1

3
2 4
1 1
3 2

Vzorový výstup 1

2
2 3

Zaměříme-li se na karty 1 a 3, zjistíme, že A_1 < A_3 a C_1 > C_3, takže kartu 1 můžeme vyřadit.
Žádné další operace nelze provést. V tuto chvíli zbývají karty 2 a 3, takže je vytiskneme.

Vzorový vstup 2

5
1 1
10 2
100 3
1000 4
10000 5

Výstupní vzorek 2

5
1 2 3 4 5

V tomto případě nelze vyřadit žádné karty.

Vzorový vstup 3

6
32 101
65 78
2 29
46 55
103 130
52 40

Výstupní vzorek 3

4
2 3 5 6

Takahashi má N karet z karetní hry "AtCoder Magics." i-tá karta bude nazývána karta i. Každá karta má dva parametry: sílu a cenu. Karta i má sílu A_i a cenu C_i.
Nemá rád slabé karty, takže je odloží. Konkrétně bude opakovat následující operaci, dokud ji již nelze provést:

- Zvolí dvě karty x a y tak, že A_x > A_y a C_x < C_y. Odloží kartu y.

Lze dokázat, že sada zbývajících karet, když operace již nelze provádět, je jednoznačně určena. Najděte tuto sadu karet.

Vstup

Vstup je zadáván ze standardního vstupu v následujícím formátu:
N
A_1 C_1
A_2 C_2
\vdots
A_N C_N

Výstup

Nechť je m zbývajících karet, karty i_1, i_2, \dots, i_m, v rostoucím pořadí. Vytiskněte je v následujícím formátu:
m
i_1 i_2 \cdots i_m

Omezení

- 2 \leq N \leq 2 \times 10^5
- 1 \leq A_i, C_i \leq 10^9
- A_1, A_2, \dots ,A_N jsou všechny odlišné.
- C_1, C_2, \dots ,C_N jsou všechny odlišné.
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový Vstup 1

3
2 4
1 1
3 2

Ukázkový Výstup 1

2
2 3

Zaměříme-li se na karty 1 a 3, máme A_1 < A_3 a C_1 > C_3, takže kartu 1 lze odložit.
Žádné další operace nelze provést. V tuto chvíli zůstávají karty 2 a 3, takže je vytiskněte.

Ukázkový Vstup 2

5
1 1
10 2
100 3
1000 4
10000 5

Ukázkový Výstup 2

5
1 2 3 4 5

V tomto případě nelze odložit žádné karty.

Ukázkový Vstup 3

6
32 101
65 78
2 29
46 55
103 130
52 40

Ukázkový Výstup 3

4
2 3 5 6


Vzor tapety AtCoderu může být reprezentován v rovině xy následovně:

-
Rovina je rozdělena následujícími třemi typy čar:

-
x = n (kde n je celé číslo)

-
y = n (kde n je sudé číslo)

-
x + y = n (kde n je sudé číslo)

-
Každá oblast je vymalována černě nebo bíle. Jakékoli dvě oblasti sousedící podél jedné z těchto čar jsou vybarveny různými barvami.

-
Oblast obsahující (0,5, 0,5) je vybarvena černě.

Na následujícím obrázku je znázorněna část vzoru.

Jsou vám dána celá čísla A, B, C, D. Uvažujme obdélník, jehož strany jsou rovnoběžné s osami x a y, s jeho levým dolním vrcholem v (A, B) a pravým horním vrcholem v (C, D). Vypočítejte plochu oblastí vykreslených černou barvou uvnitř tohoto obdélníku a vytiskněte dvakrát tuto oblast.
Lze dokázat, že výstupní hodnotou bude celé číslo.

Vstup

Vstup je zadán ze standardního vstupu v následujícím formátu:
A B C D

Výstup

Vytiskněte odpověď na jeden řádek.

Omezení

- -10^9 \leq A, B, C, D \leq 10^9
- A < C and B < D.
- Všechny vstupní hodnoty jsou celá čísla.

Vzorový vstup 1

0 0 3 3

Ukázkový výstup 1

10

Najdeme plochu černě natřené oblasti uvnitř následujícího čtverce:

Plocha je 5, takže vytiskněte dvojnásobek této hodnoty: 10.

Vzorkovací vstup 2

-1 -2 1 3

Ukázkový výstup 2

11

Oblast je 5,5, což není celé číslo, ale výstupní hodnota je celé číslo.

Vzorkovací vstup 3

-1000000000 -1000000000 1000000000 1000000000

Ukázkový výstup 3

4000000000000000000

To je případ největšího obdélníku, kde se výstup stále vejde do 64bitového celého čísla se znaménkem.

Vzor tapety AtCoder může být znázorněn v rovině xy takto:

-
Rovina je rozdělena následujícími třemi typy čar:

-
x = n (kde n je celé číslo)

-
y = n (kde n je sudé číslo)

-
x + y = n (kde n je sudé číslo)

-
Každá oblast je natřena černou nebo bílou barvou. Jakékoli dvě oblasti sousedící podél jedné z těchto čar jsou namalovány různými barvami.

-
Oblast obsahující (0,5, 0,5) je vybarvena černě.

Následující obrázek ukazuje část vzoru.

Jsou vám dána celá čísla A, B, C, D. Uvažujme obdélník, jehož strany jsou rovnoběžné s osami x a y, s levým spodním vrcholem v (A, B) a jeho pravým horním vrcholem v (C, D). Vypočítejte plochu oblastí natřených černě uvnitř tohoto obdélníku a vytiskněte dvojnásobek této oblasti.
Lze dokázat, že výstupní hodnota bude celé číslo.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
A B C D

Výstup

Vytiskněte odpověď na jeden řádek.

Omezení

- -10^9 \leq A, B, C, D \leq 10^9
- A < C a B < D.
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

0 0 3 3

Ukázkový výstup 1

10

Máme najít oblast černě natřené oblasti uvnitř následujícího čtverce:

Oblast je 5, takže vytiskněte dvojnásobek této hodnoty: 10.

Ukázkový vstup 2

-1 -2 1 3

Ukázkový výstup 2

11

Oblast je 5,5, což není celé číslo, ale výstupní hodnota je celé číslo.

Ukázkový vstup 3

-1000000000 -1000000000 1000000000 1000000000

Ukázkový výstup 3

4000000000000000000

To je případ největšího obdélníku, kde se výstup stále vejde do 64bitového celého čísla se znaménkem.

Vzor tapety AtCoder lze naxy rovině popsat následovně:

Rovina je rozdělena třemi typy čar:

x = n (kde n je celé číslo)

y = n (kde n je sudé číslo)

x + y = n (kde n je sudé číslo)

Každá oblast je natřena černou nebo bílou barvou. Jakékoliv dvě oblasti, které sousedí podél jedné z těchto čar, jsou natřeny různými barvami.

Oblast obsahující (0.5, 0.5) je natřena černě.

Následující obrázek ukazuje část vzoru.

Jsou dána celá čísla A, B, C, D. Zvažte obdélník, jehož strany jsou rovnoběžné s osami x a y, s jeho dolním levým vrcholem v bodě (A, B) a horním pravým vrcholem v bodě (C, D). Vypočítejte plochu oblastí natřených černě uvnitř tohoto obdélníku a vytiskněte dvojnásobek této plochy. Lze dokázat, že výstupní hodnota bude celé číslo.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
A B C D

Výstup

Vytiskněte odpověď na jeden řádek.

Omezení

- -10^9 \leq A, B, C, D \leq 10^9
- A < C a B < D.
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

0 0 3 3

Ukázkový výstup 1

10

Je třeba najít plochu černě natřené oblasti uvnitř následujícího čtverce:

Plocha je 5, takže vytiskněte dvojnásobek této hodnoty: 10.

Ukázkový vstup 2

-1 -2 1 3

Ukázkový výstup 2

11

Plocha je 5.5, což není celé číslo, ale výstupní hodnota je celé číslo.

Ukázkový vstup 3

-1000000000 -1000000000 1000000000 1000000000

Ukázkový výstup 3

4000000000000000000

Toto je případ největšího obdélníku, kde výstup stále zapadá do 64bitového podepsaného celého čísla.


Toto je interaktivní problém (kde váš program komunikuje s rozhodčím prostřednictvím vstupu a výstupu).
Dostanete kladné celé číslo N a celá čísla L a R taková, že 0 \leq L \leq R < 2^N. Soudce má skrytou sekvenci A = (A_0, A_1, \dots, A_{2^N-1}) skládající se z celých čísel mezi 0 a 99 včetně.
Vaším cílem je najít zbytek, když je A_L + A_{L+1} + \dots + A_R děleno 100. Nemůžete však přímo znát hodnoty prvků v posloupnosti A. Místo toho se můžete zeptat rozhodčího, následující otázka:

- Vyberte nezáporná celá čísla i a j taková, že 2^i(j+1) \leq 2^N. Nechť l = 2^i j a r = 2^i (j+1) - 1. Zeptejte se na zbytek, když je A_l + A_{l+1} + \dots + A_r děleno 100.

Nechť m je minimální počet otázek potřebný k určení zbytku, když je A_L + A_{L+1} + \dots + A_R děleno 100 pro jakoukoli posloupnost A. Tento zbytek musíte najít v rámci m otázek.

Vstup a výstup

Toto je interaktivní problém (kde váš program komunikuje s rozhodčím prostřednictvím vstupu a výstupu).
Nejprve si přečtěte celá čísla N, L a R ze standardního vstupu:
N L R

Poté opakujte kladení otázek, dokud nezjistíte zbytek, když je A_L + A_{L+1} + \dots + A_R děleno 100. Každá otázka by měla být vytištěna v následujícím formátu:
? i j

Zde i a j musí splňovat následující omezení:

- i a j jsou nezáporná celá čísla.
- 2^i(j+1) \leq 2^N

Odpověď na otázku bude poskytnuta v následujícím formátu ze standardního vstupu:
T

Zde je T odpověď na otázku, což je zbytek, když je A_l + A_{l+1} + \dots + A_r děleno 100, kde l = 2^i j a r = 2^i (j+1) - 1.
Pokud i a j nesplňují omezení nebo pokud počet otázek překročí m, pak T bude -1.
Pokud rozhodčí vrátí -1, váš program je již považován za nesprávný. V takovém případě program okamžitě ukončete.
Jakmile určíte zbytek, když je A_L + A_{L+1} + \dots + A_R děleno 100, vytiskněte zbytek S v následujícím formátu a okamžitě ukončete program:
! S

Vstup a výstup

Toto je interaktivní problém (kde váš program komunikuje s rozhodčím prostřednictvím vstupu a výstupu).
Nejprve si přečtěte celá čísla N, L a R ze standardního vstupu:
N L R

Poté opakujte kladení otázek, dokud nezjistíte zbytek, když je A_L + A_{L+1} + \dots + A_R děleno 100. Každá otázka by měla být vytištěna v následujícím formátu:
? i j

Zde i a j musí splňovat následující omezení:

- i a j jsou nezáporná celá čísla.
- 2^i(j+1) \leq 2^N

Odpověď na otázku bude poskytnuta v následujícím formátu ze standardního vstupu:
T

Zde je T odpověď na otázku, což je zbytek, když je A_l + A_{l+1} + \dots + A_r děleno 100, kde l = 2^i j a r = 2^i (j+1) - 1.
Pokud i a j nesplňují omezení nebo pokud počet otázek překročí m, pak T bude -1.
Pokud rozhodčí vrátí -1, váš program je již považován za nesprávný. V takovém případě program okamžitě ukončete.
Jakmile určíte zbytek, když je A_L + A_{L+1} + \dots + A_R děleno 100, vytiskněte zbytek S v následujícím formátu a okamžitě ukončete program:
! S

Omezení

- 1 \leq N \leq 18
- 0 \leq L \leq R \leq 2^N - 1
- Všechny vstupní hodnoty jsou celá čísla.

Toto je interaktivní úloha (kde váš program interaguje se soudcem prostřednictvím vstupu a výstupu).
Je vám dán kladný celek N a celky L a R tak, že 0 \leq L \leq R < 2^N. Soudce má skrytou posloupnost A = (A_0, A_1, \dots, A_{2^N-1}) skládající se z celků mezi 0 a 99 včetně.
Vaším cílem je najít zbytek při dělení A_L + A_{L+1} + \dots + A_R číslem 100. Nemůžete však přímo znát hodnoty prvků v posloupnosti A. Můžete se však ptát soudce následující otázkou:

- Vyberte nezáporné celé čísla i a j tak, že 2^i(j+1) \leq 2^N. Nechť l = 2^i j a r = 2^i (j+1) - 1. Zeptejte se na zbytek při dělení A_l + A_{l+1} + \dots + A_r číslem 100.

Nechť m je minimální počet otázek nutných k určení zbytku při dělení A_L + A_{L+1} + \dots + A_R číslem 100 pro jakoukoliv posloupnost A. Potřebujete najít tento zbytek v rámci m otázek.

Vstup a výstup

Toto je interaktivní úloha (kde váš program interaguje se soudcem prostřednictvím vstupu a výstupu).
Nejprve přečtěte celky N, L a R ze standardního vstupu:
N L R

Poté se opakovaně ptejte, dokud nebudete schopni určit zbytek při dělení A_L + A_{L+1} + \dots + A_R číslem 100. Každá otázka by měla být vytištěna v následujícím formátu:
? i j

Zde musí i a j splňovat následující omezení:

- i a j jsou nezáporné celé čísla.
- 2^i(j+1) \leq 2^N

Odpověď na otázku bude dána v následujícím formátu ze standardního vstupu:
T

Zde je T odpověď na otázku, což je zbytek při dělení A_l + A_{l+1} + \dots + A_r číslem 100, kde l = 2^i j a r = 2^i (j+1) - 1.
Pokud i a j nesplňují omezení, nebo pokud počet otázek překročí m, potom T bude -1.
Pokud soudce vrátí -1, je váš program již považován za nesprávný. V tomto případě okamžitě ukončete program.
Jakmile určíte zbytek při dělení A_L + A_{L+1} + \dots + A_R číslem 100, vytiskněte zbytek S v následujícím formátu a okamžitě ukončete program:
! S

Vstup a výstup

Toto je interaktivní úloha (kde váš program interaguje se soudcem prostřednictvím vstupu a výstupu).
Nejprve přečtěte celky N, L a R ze standardního vstupu:
N L R

Poté se opakovaně ptejte, dokud nebudete schopni určit zbytek při dělení A_L + A_{L+1} + \dots + A_R číslem 100. Každá otázka by měla být vytištěna v následujícím formátu:
? i j

Zde musí i a j splňovat následující omezení:

- i a j jsou nezáporné celé čísla.
- 2^i(j+1) \leq 2^N

Odpověď na otázku bude dána v následujícím formátu ze standardního vstupu:
T

Zde je T odpověď na otázku, což je zbytek při dělení A_l + A_{l+1} + \dots + A_r číslem 100, kde l = 2^i j a r = 2^i (j+1) - 1.
Pokud i a j nesplňují omezení, nebo pokud počet otázek překročí m, potom T bude -1.
Pokud soudce vrátí -1, je váš program již považován za nesprávný. V tomto případě okamžitě ukončete program.
Jakmile určíte zbytek při dělení A_L + A_{L+1} + \dots + A_R číslem 100, vytiskněte zbytek S v následujícím formátu a okamžitě ukončete program:
! S

Omezení

- 1 \leq N \leq 18
- 0 \leq L \leq R \leq 2^N - 1
- Všechny vstupní hodnoty jsou celá čísla.

Toto je interaktivní problém (kde váš program komunikuje s rozhodčím prostřednictvím vstupu a výstupu).
Dostanete kladné celé číslo N a celá čísla L a R taková, že 0 \leq L \leq R < 2^N. Soudce má skrytou sekvenci A = (A_0, A_1, \dots, A_{2^N-1}) skládající se z celých čísel mezi 0 a 99 včetně.
Vaším cílem je najít zbytek, když je A_L + A_{L+1} + \dots + A_R děleno 100. Nemůžete však přímo znát hodnoty prvků v posloupnosti A. Místo toho se můžete zeptat rozhodčího, následující otázka:

- Vyberte nezáporná celá čísla i a j taková, že 2^i(j+1) \leq 2^N. Nechť l = 2^i j a r = 2^i (j+1) - 1. Zeptejte se na zbytek, když je A_l + A_{l+1} + \dots + A_r děleno 100.

Nechť m je minimální počet otázek potřebný k určení zbytku, když je A_L + A_{L+1} + \dots + A_R děleno 100 pro jakoukoli posloupnost A. Tento zbytek musíte najít v rámci m otázek.

Vstup a výstup

Toto je interaktivní problém (kde váš program komunikuje s rozhodčím prostřednictvím vstupu a výstupu).
Nejprve si přečtěte celá čísla N, L a R ze standardního vstupu:
N L R

Poté opakujte kladení otázek, dokud nezjistíte zbytek, když je A_L + A_{L+1} + \dots + A_R děleno 100. Každá otázka by měla být vytištěna v následujícím formátu:
? já j

Zde i a j musí splňovat následující omezení:

- i a j jsou nezáporná celá čísla.
- 2^i(j+1) \leq 2^N

Odpověď na otázku bude poskytnuta v následujícím formátu ze standardního vstupu:
T

Zde je T odpověď na otázku, což je zbytek, když je A_l + A_{l+1} + \dots + A_r děleno 100, kde l = 2^i j a r = 2^i (j+1) - 1.
Pokud i a j nesplňují omezení nebo pokud počet otázek překročí m, pak T bude -1.
Pokud rozhodčí vrátí -1, váš program je již považován za nesprávný. V takovém případě program okamžitě ukončete.
Jakmile určíte zbytek, když je A_L + A_{L+1} + \dots + A_R děleno 100, vytiskněte zbytek S v následujícím formátu a okamžitě ukončete program:
! S

Vstup a výstup

Toto je interaktivní problém (kde váš program komunikuje s rozhodčím prostřednictvím vstupu a výstupu).
Nejprve si přečtěte celá čísla N, L a R ze standardního vstupu:
N L R

Poté opakujte kladení otázek, dokud nezjistíte zbytek, když je A_L + A_{L+1} + \dots + A_R děleno 100. Každá otázka by měla být vytištěna v následujícím formátu:
? já j

Zde i a j musí splňovat následující omezení:

- i a j jsou nezáporná celá čísla.
- 2^i(j+1) \leq 2^N

Odpověď na otázku bude poskytnuta v následujícím formátu ze standardního vstupu:
T

Zde je T odpověď na otázku, což je zbytek, když je A_l + A_{l+1} + \dots + A_r děleno 100, kde l = 2^i j a r = 2^i (j+1) - 1.
Pokud i a j nesplňují omezení nebo pokud počet otázek překročí m, pak T bude -1.
Pokud rozhodčí vrátí -1, váš program je již považován za nesprávný. V takovém případě program okamžitě ukončete.
Jakmile určíte zbytek, když je A_L + A_{L+1} + \dots + A_R děleno 100, vytiskněte zbytek S v následujícím formátu a okamžitě ukončete program:
! S

Omezení

- 1 \leq N \leq 18
- 0 \leq L \leq R \leq 2^N - 1
- Všechny vstupní hodnoty jsou celá čísla.


Je vám dána sekvence A=(A_1,A_2,\dots,A_N) délky N a sekvence B=(B_1,B_2,\dots,B_M) délky M. Zde jsou všechny prvky A a B po párech odlišné . Určete, zda sekvence C=(C_1,C_2,\dots,C_{N+M}) vytvořená seřazením všech prvků A a B ve vzestupném pořadí obsahuje dva po sobě jdoucí prvky objevující se v A.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N M
A_1 A_2 \dots A_N
B_1 B_2 \dots B_M

Výstup

Pokud C obsahuje dva po sobě jdoucí prvky objevující se v A, vytiskněte Ano; jinak tiskněte Ne.

Omezení

- 1 \ leq N, M \leq 100
- 1 \leq A_i, B_j \leq 200
- A_1, A_2, \dots, A_N, B_1, B_2, \dots, B_M jsou odlišné.
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

3 2
3 2 5
4 1

Ukázkový výstup 1

Yes

C=(1,2,3,4,5). Protože se 2 a 3 z A vyskytují v C za sebou, vytiskněte Ano.

Ukázkový vstup 2

3 2
3 1 5
4 2

Ukázkový výstup 2

No

C=(1,2,3,4,5). Protože žádné dva prvky z A se v C nevyskytují po sobě, vytiskněte Ne.

Ukázkový vstup 3

11
1
2

Ukázkový výstup 3

No

Je vám dána sekvence A=(A_1,A_2,\...,A_N) délky N a sekvence B=(B_1,B_2,\...,B_M) délky M. Zde jsou všechny prvky A a B po párech odlišné . Určete, zda sekvence C=(C_1,C_2,\...,C_{N+M}) vytvořená seřazením všech prvků A a B ve vzestupném pořadí obsahuje dva po sobě jdoucí prvky objevující se v A.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N M
A_1 A_2 \... A_N
B_1 B_2 \... B_M

Výstup

Pokud C obsahuje dva po sobě jdoucí prvky objevující se v A, vytiskněte Ano; jinak tisk Ne.

Omezení

- 1 \leq N, M \leq 100
- 1 \leq A_i, B_j \leq 200
- A_1, A_2, \dots, A_N, B_1, B_2, \dots, B_M jsou odlišné.
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

3 2
3 2 5
4 1

Ukázkový výstup 1

Yes

C=(1,2,3,4,5). Protože se 2 a 3 z A vyskytují v C za sebou, vytiskněte Ano.

Ukázkový vstup 2

3 2
3 1 5
4 2

Ukázkový výstup 2

No

C=(1,2,3,4,5). Protože žádné dva prvky z A se v C nevyskytují po sobě, vytiskněte č.

Ukázkový vstup 3

1 1
1
2

Ukázkový výstup 3

No

Dostanete sekvenci A=(A_1,A_2,\dots,A_N) délky N a sekvenci B=(B_1,B_2,\dots,B_M) délky M. Zde jsou všechny prvky A a B po párech odlišné. . Určete, zda sekvence C=(C_1,C_2,\dots,C_{N+M}) vytvořená seřazením všech prvků A a B ve vzestupném pořadí obsahuje dva po sobě jdoucí prvky objevující se v A.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N M
A_1 A_2 \dots A_N
B_1 B_2 \dots B_M

Výstup

Pokud C obsahuje dva po sobě jdoucí prvky objevující se v A, vytiskněte Ano; jinak tiskněte Ne.

Omezení

- 1 \leq N, M \leq 100
- 1 \leq A_i, B_j \leq 200
- A_1, A_2, \dots, A_N, B_1, B_2, \dots, B_M jsou odlišné.
- Všechny vstupní hodnoty jsou celá celá čísla.

Ukázkový vstup 1

3 2
3 2 5
4 1

Ukázkový výstup 1

Yes

C=(1,2,3,4,5). Protože se 2 a 3 z A vyskytují v C za sebou, vytiskněte Ano.

Ukázkový vstup 2

3 2
3 1 5
4 2

Ukázkový výstup 2

No

C=(1,2,3,4,5). Protože žádné dva prvky z A se v C nevyskytují po sobě, vytiskněte č.

Ukázkový vstup 3

1 1
1
2

Ukázkový výstup 3

No


Existuje mřížka N \krát N, kde buňka v i-tém řádku shora a j-tém sloupci zleva obsahuje celé číslo N \krát (i-1) + j.
V průběhu T tahů budou oznámena celá čísla. V tahu i se oznámí celé číslo A_i a označí se políčko obsahující A_i. Určete tah, ve kterém je poprvé dosaženo Binga. Pokud není Bingo dosaženo během T tahů, vypište -1.
Dosažení Binga zde znamená splnění alespoň jedné z následujících podmínek:

- Existuje řádek, ve kterém je označeno všech N políček.
- Existuje sloupec, ve kterém je označeno všech N políček.
- Existuje úhlopříčka (z levého horního rohu do pravého dolního rohu nebo z pravého horního rohu do levého dolního rohu), ve které je označeno všech N políček.

Vstup

Vstup se zadává ze standardního vstupu v následujícím formátu:
N T
A_1 A_2 \ldots A_T

Výstup

Pokud je Bingo dosaženo během T tahů, vypište číslo tahu, ve kterém bylo Bingo dosaženo poprvé; v opačném případě vypište -1.

Omezení

- 2 \leq N \leq 2 \krát 10^3
- 1 \leq T \leq \min(N^2, 2 \krát 10^5)
- 1 \leq A_i \leq N^2
- A_i \neq A_j, pokud i \neq j.
- Všechny vstupní hodnoty jsou celá čísla.

Vzorový vstup 1

3 5
5 1 8 9 7

Vzorový výstup 1

4

Stav mřížky se mění následujícím způsobem. Binga je poprvé dosaženo ve 4. tahu.

Vzorový vstup 2

3 5
4 2 9 7 5

Vzorový výstup 2

-1

Binga není dosaženo během pěti tahů, proto vypište -1.

Vzorový vstup 3

4 12
13 9 6 5 2 7 16 14 8 3 10 11

Vzorový výstup 3

9

Existuje mřížka N \krát N, kde buňka v i-tém řádku shora a j-tém sloupci zleva obsahuje celé číslo N \krát (i-1) + j.
V průběhu T tahů budou oznámena celá čísla. V tahu i se oznámí celé číslo A_i a označí se políčko obsahující A_i. Určete tah, ve kterém je poprvé dosaženo Binga. Pokud není Bingo dosaženo během T tahů, vypište -1.
Dosažení Binga zde znamená splnění alespoň jedné z následujících podmínek:

- Existuje řádek, ve kterém je označeno všech N políček.
- Existuje sloupec, ve kterém je označeno všech N políček.
- Existuje úhlopříčka (z levého horního rohu do pravého dolního rohu nebo z pravého horního rohu do levého dolního rohu), ve které je označeno všech N políček.

Vstup

Vstup se zadává ze standardního vstupu v následujícím formátu:
N T
A_1 A_2 \ldots A_T

Výstup

Pokud je Bingo dosaženo během T tahů, vypište číslo tahu, ve kterém bylo Bingo dosaženo poprvé; v opačném případě vypište -1.

Omezení

- 2 \leq N \leq 2 \times 10^3
- 1 \leq T \leq \min(N^2, 2 \times 10^5)
- 1 \leq A_i \leq N^2
- A_i \neq A_j,  if i \neq j.
- Všechny vstupní hodnoty jsou celá čísla.

Příklad Vstup 1

3 5
5 1 8 9 7

Ukázkový výstup 1

4

Stav mřížky se mění následujícím způsobem. Binga je poprvé dosaženo ve 4. tahu.

Vzorový vstup 2

3 5
4 2 9 7 5

Ukázkový výstup 2

-1

Binga není dosaženo během pěti tahů, proto vypište -1.

Vzorový vstup 3

4 12
13 9 6 5 2 7 16 14 8 3 10 11

Ukázkový výstup 3

9

Existuje N \times N mřížka, kde buňka na i-tém řádku shora a j-tý sloupec zleva obsahuje celé číslo N \times (i-1) + j.
Přes T otočení budou oznámena celá čísla. Na kole i je oznámeno celé číslo A_i a označena buňka obsahující A_i. Určete tah, ve kterém je Bingo dosaženo poprvé. Pokud Bingo není dosaženo do T kol, vytiskněte -1.
Zde dosažení Binga znamená splnění alespoň jedné z následujících podmínek:

- Existuje řádek, ve kterém je označeno všech N buněk.
- Existuje sloupec, ve kterém je označeno všech N buněk.
- Existuje diagonální čára (zleva nahoře doprava dolů nebo zprava nahoru doleva dole), ve které je označeno všech N buněk.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N T
A_1 A_2 \ldots A_T

Výstup

Pokud je Bingo dosaženo v rámci T tahů, vytiskněte číslo tahu, ve kterém bylo Bingo dosaženo poprvé; v opačném případě vytiskněte -1.

Omezení

- 2 \leq N \leq 2 \krát 10^3
- 1 \leq T \leq \min(N^2, 2 \krát 10^5)
- 1 \leq A_i \leq N^2
- A_i \neq A_j, pokud i \neq j.
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

3 5
5 1 8 9 7

Ukázkový výstup 1

4

Stav mřížky se mění následovně. Bingo je poprvé dosaženo ve 4. kole.

Ukázkový vstup 2

3 5
4 2 9 7 5

Ukázkový výstup 2

-1

Bingo není dosaženo během pěti otáček, takže tiskněte -1.

Ukázkový vstup 3

4 12
13 9 6 5 2 7 16 14 8 3 10 11

Ukázkový výstup 3

9


Here’s the translation into Czech, calibrated per your guidelines:

---

**Takahashiho dort byl někým sněden. Jsou tři podezřelí: osoba 1, osoba 2 a osoba 3.**
Existují dva svědci, Ringo a Snuke. Ringo si pamatuje, že osoba A není pachatelem, a Snuke si pamatuje, že osoba B není pachatelem.
Určete, zda lze pachatele jednoznačně identifikovat na základě vzpomínek obou svědků. Pokud lze pachatele určit, vytiskněte číslo osoby.

---

**Vstup**

Vstup je zadán ze standardního vstupu v následujícím formátu:
`A B`

---

**Výstup**

Pokud lze pachatele jednoznačně identifikovat na základě vzpomínek obou svědků, vytiskněte číslo osoby; jinak vytiskněte `-1`.

---

**Omezení**

- \( 1 \leq A, B \leq 3 \)
- Všechny vstupní hodnoty jsou celá čísla.

---

**Ukázkový vstup 1**

```
1 2
```

**Ukázkový výstup 1**

```
3
```

Na základě vzpomínek obou svědků lze určit, že pachatelem je osoba 3.

---

**Ukázkový vstup 2**

```
1 1
```

**Ukázkový výstup 2**

```
-1
```

Na základě vzpomínek obou svědků nelze určit, zda je pachatelem osoba 2 nebo osoba 3. Proto vytiskněte `-1`.

---

**Ukázkový vstup 3**

```
3 1
```

Ukázkový výstup 3

2

Sample Input 1

1 2

Sample Output 1

3

From the memories of the two witnesses, it can be determined that person 3 is the culprit.

Sample Input 2

1 1

Sample Output 2

-1

From the memories of the two witnesses, it cannot be determined whether person 2 or person 3 is the culprit. Therefore, print -1.

Sample Input 3

3 1

Sample Output 3

2

Takahashiho dort někdo snědl. Existují tři podezřelí: osoba 1, osoba 2 a osoba 3.
Existují dva svědci, Ringo a Snuke. Ringo si pamatuje, že osoba A není pachatel, a Snuke si pamatuje, že osoba B není pachatel.
Určete, zda lze pachatele jednoznačně identifikovat na základě vzpomínek dvou svědků. Pokud lze pachatele identifikovat, vytiskněte číslo osoby.

Vstup

Vstup je zadán ze Standardního Vstupu v následujícím formátu:
A B

Výstup

Pokud lze pachatele jednoznačně identifikovat na základě vzpomínek dvou svědků, vytiskněte číslo osoby; jinak vytiskněte -1.

Omezení

- 1 \leq A, B \leq 3
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový Vstup 1

1 2

Ukázkový Výstup 1

3

Ze vzpomínek dvou svědků lze určit, že osoba 3 je pachatelem.

Ukázkový Vstup 2

1 1

Ukázkový Výstup 2

-1

Ze vzpomínek dvou svědků nelze určit, zda je pachatelem osoba 2 nebo osoba 3. Proto vytiskněte -1.

Ukázkový Vstup 3

3 1

Ukázkový Výstup 3

2

Takahashiho dort někdo snědl. Podezřelí jsou tři: osoba 1, osoba 2 a osoba 3.
Jsou tam dva svědci, Ringo a Snuke. Ringo si pamatuje, že osoba A není viníkem, a Snuke si pamatuje, že osoba B není viníkem.
Zjistěte, zda lze viníka jednoznačně identifikovat na základě vzpomínek dvou svědků. Pokud lze identifikovat viníka, vytiskněte číslo osoby.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
A B

Výstup

Pokud lze na základě vzpomínek dvou svědků jednoznačně identifikovat viníka, vytiskněte číslo osoby; v opačném případě vytiskněte -1.

Omezení

- 1 \leq A, B \leq 3
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

1 2

Ukázkový výstup 1

3

Ze vzpomínek dvou svědků lze určit, že viníkem je osoba 3.

Ukázkový vstup 2

1 1

Ukázkový výstup 2

-1

Ze vzpomínek dvou svědků nelze určit, zda je viníkem osoba 2 nebo osoba 3. Proto vytiskněte -1.

Ukázkový vstup 3

3 1

Ukázkový výstup 3

2


Je vám dáno N intervalů reálných čísel. I-tý (1 \leq i \leq N) interval je [l_i, r_i]. Najděte počet dvojic (i, j)\,(1 \leq i < j \leq N) takový, že se i-tý a j-tý interval protnou.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N
l_1 r_1
l_2 r_2
\vdots
l_N r_N

Výstup

Vytiskněte odpověď.

Omezení

- 2 \leq N \leq 5 \times 10^5
- 0 \leq l_i < r_i \leq 10^9
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

3
1 5
7 8
3 7

Ukázkový výstup 1

2

Uvedené intervaly jsou [1,5], [7,8], [3,7]. Mezi nimi se protínají 1. a 3. interval, stejně jako 2. a 3. interval, takže odpověď je 2.

Ukázkový vstup 2

3
3 4
2 5
1 6

Ukázkový výstup 2

3

Ukázkový vstup 3

2
1 2
3 4

Ukázkový výstup 3

0

Je dáno N intervalů reálných čísel. I-tý (1 \leq i \leq N) interval je [l_i, r_i]. Najděte počet dvojic (i, j)\,(1 \leq i < j \leq N) takových, že se i-tý a j-tý interval protínají.

Vstup

Vstup je zadán ze standardního vstupu v následujícím formátu:
N
l_1 r_1
l_2 r_2
\vdots
l_N r_N

Výstup

Vypište odpověď.

Omezení

- 2 \leq N \leq 5 \times 10^5
- 0 \leq l_i < r_i \leq 10^9
- Všechny vstupní hodnoty jsou celá čísla.

Příklad Vstup 1

3
1 5
7 8
3 7

Vzorový výstup 1

2

Zadané intervaly jsou [1,5], [7,8], [3,7]. Mezi nimi se protínají 1. a 3. interval, stejně jako 2. a 3. interval, takže odpověď je 2.

Vzorový vstup 2

3
3 4
2 5
1 6

Vzorový výstup 2

3

Vzorový vstup 3

2
1 2
3 4

Vzorový výstup 3

0

Je vám dáno N intervalů reálných čísel. I-tý (1 \leq i \leq N) interval je [l_i, r_i]. Najděte počet dvojic (i, j)\,(1 \leq i < j \leq N) takový, že se protínají.

Vstup

Vstup je zadán ve formátu ze standardního vstupu:
N
l_1 r_1
l_2 r_2
\a tak dále
l_N r_N

Výstup

Vypište odpověď.

Omezení

- 2 \leq N \leq 5 \times 10^5
- 0 \leq l_i < r_i \leq 10^9
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

3
1 5
7 8
3 7

Ukázkový výstup 1

2

Zadané intervaly jsou [1,5], [7,8], [3,7]. Mezi nimi se protínají 1. a 3. interval a také 2. a 3. interval, takže odpověď je 2.

Ukázkový vstup 2

3
3 4
2 5
1 6

Ukázkový výstup 2

3

Ukázkový vstup 3

2
1 2
3 4

Ukázkový výstup 3

0


Máte pole apple velikosti n a pole capacity velikosti m.
Existuje n balíčků, kde i-tý balíček obsahuje apple[i] apples. Existuje také m krabic a i-tá krabice má kapacitu capacity[i] jablek.
Vraťte minimální počet krabic, které musíte vybrat pro přerozdělení těchto n balíčků jablek do krabic.
Všimněte si, že jablka z jednoho balíčku mohou být rozdělena do různých krabic.

Příklad 1:

Vstup: apple = [1,3,2], capacity = [4,3,1,5,2]
Výstup: 2
Vysvětlení: Použijeme krabice s kapacitami 4 a 5.
Je možné přerozdělit jablka, jelikož celková kapacita je větší nebo rovná celkovému počtu apples.

Příklad 2:

Vstup: apple = [5,5,5], capacity = [2,4,2,7]
Výstup: 4
Vysvětlení: Budeme muset použít všechny krabice.

Omezení:

1 <= n == apple.length <= 50
1 <= m == capacity.length <= 50
1 <= apple[i], capacity[i] <= 50
Vstup je generován tak, že je možné přerozdělit balíčky jablek do krabic.

Dostanete jablko pole o velikosti n a kapacitu pole o velikosti m.
Existuje n balíčků, kde i^tý balíček obsahuje jablka[i] jablka. Existuje také m boxů a i^-tý box má kapacitu kapacit[i] jablek.
Vraťte minimální počet krabic, které musíte vybrat, abyste těchto n balíčků jablek přerozdělili do krabic.
Všimněte si, že jablka ze stejného balení lze rozdělit do různých krabic.

Příklad 1:

Vstup: jablko = [1,3,2], kapacita = [4,3,1,5,2]
Výstup: 2
Vysvětlení: Použijeme boxy s kapacitou 4 a 5.
Je možné distribuovat jablka, protože celková kapacita je větší nebo rovna celkovému počtu jablek.

Příklad 2:

Vstup: jablko = [5,5,5], kapacita = [2,4,2,7]
Výstup: 4
Vysvětlení: Budeme muset použít všechny krabice.

Omezení:

1 <= n == jablko.length <= 50
1 <= m == kapacita.length <= 50
1 <= jablko[i], kapacita[i] <= 50
Vstup je generován tak, že je možné přerozdělit balíčky jablek do krabic.

Je dáno pole jablek o velikosti n a kapacita pole o velikosti m.
Existuje n balení, přičemž i^té balení obsahuje jablka[i]. Existuje také m krabic, přičemž i^tá krabice má kapacitu kapacitu[i] jablek.
Vraťte minimální počet krabic, které je třeba vybrat, aby bylo možné přerozdělit těchto n balení jablek do krabic.
Všimněte si, že jablka ze stejného balení mohou být rozdělena do různých krabic.

Příklad 1:

Vstup: jablka = [1,3,2], kapacita = [4,3,1,5,2].
Výstup: 2
Vysvětlení: Použijeme krabice s kapacitou 4 a 5.
Jablka je možné rozdělit tak, že jejich celková kapacita je větší nebo rovna celkovému počtu jablek.

Příklad 2:

Vstup: jablka = [5,5,5], kapacita = [2,4,2,7].
Výstup: 4
Vysvětlení: Budeme muset použít všechny krabice.

Omezení:

1 <= n == apple.length <= 50
1 <= m == capacity.length <= 50
1 <= apple[i], capacity[i] <= 50
Vstup je generován tak, aby bylo možné přerozdělit balení jablek do krabic.


Dostanete pole `happiness` délky `n` a kladné celé číslo `k`.
V řadě stojí `n` dětí, kde `i`-té dítě má hodnotu štěstí `happiness[i]`. Chcete vybrat `k` dětí z těchto `n` dětí během `k` tahů.
V každém tahu, když vyberete dítě, hodnota štěstí všech dětí, které dosud nebyly vybrány, se sníží o 1. Upozorňujeme, že hodnota štěstí nemůže být záporná a snižuje se pouze tehdy, je-li kladná.
Vraťte maximální součet hodnot štěstí vybraných dětí, kterého lze dosáhnout výběrem `k` dětí.

Příklad 1:

Vstup: happiness = [1,2,3], k = 2
Výstup: 4
Vysvětlení: Můžeme vybrat 2 děti následujícím způsobem:
- Vyberte dítě s hodnotou štěstí == 3. Hodnota štěstí zbývajících dětí se stává [0,1].
- Vyberte dítě s hodnotou štěstí == 1. Hodnota štěstí zbývajícího dítěte se stává [0]. Všimněte si, že hodnota štěstí nemůže být menší než 0.
Součet hodnot štěstí vybraných dětí je 3 + 1 = 4.

Příklad 2:

Vstup: happiness = [1,1,1,1], k = 2
Výstup: 1
Vysvětlení: Můžeme vybrat 2 děti následujícím způsobem:
- Vyberte libovolné dítě s hodnotou štěstí == 1. Hodnota štěstí zbývajících dětí se stává [0,0,0].
- Vyberte dítě s hodnotou štěstí == 0. Hodnota štěstí zbývajícího dítěte se stává [0,0].
Součet hodnot štěstí vybraných dětí je 1 + 0 = 1.

Příklad 3:

Vstup: happiness = [2,3,4,5], k = 1
Výstup: 5
Vysvětlení: Můžeme vybrat 1 dítě následujícím způsobem:
- Vyberte dítě s hodnotou štěstí == 5. Hodnota štěstí zbývajících dětí se stává [1,2,3].
Součet hodnot štěstí vybraných dětí je 5.

Omezení:

1 <= n == happiness.length <= 2 * 10^5
1 <= happiness[i] <= 10^8
1 <= k <= n

Je vám dáno pole štěstí o délce n a kladné celé číslo k.
Ve frontě stojí n dětí, kde i^-té dítě má štěstí hodnotu štěstí [i]. Chcete vybrat k potomků z těchto n potomků v k otáčkách.
V každém tahu, když vyberete dítě, hodnota štěstí všech dětí, které dosud nebyly vybrány, se sníží o 1. Všimněte si, že hodnota štěstí nemůže být záporná a sníží se pouze tehdy, je-li kladná.
Vraťte maximální součet hodnot štěstí vybraných dětí, kterého můžete dosáhnout výběrem k dětí.

Příklad 1:

Vstup: happiness = [1,2,3], k = 2
Výstup: 4
Vysvětlení: 2 potomky můžeme vybrat následujícím způsobem:
- Vyberte dítě s hodnotou štěstí == 3. Hodnota štěstí zbývajících dětí se stává [0,1].
- Vyberte dítě s hodnotou štěstí == 1. Hodnota štěstí zbývajícího dítěte se stává [0]. Všimněte si, že hodnota štěstí nemůže být menší než 0.
Součet hodnot štěstí vybraných dětí je 3 + 1 = 4.

Příklad 2:

Vstup: happiness = [1,1,1,1], k = 2
Výstup: 1
Vysvětlení: 2 potomky můžeme vybrat následujícím způsobem:
- Vyberte jakékoli dítě s hodnotou štěstí == 1. Hodnota štěstí zbývajících dětí je [0,0,0].
- Vyberte dítě s hodnotou štěstí == 0. Hodnota štěstí zbývajícího dítěte se stává [0,0].
Součet hodnot štěstí vybraných dětí je 1 + 0 = 1.

Příklad 3:

Vstup: happiness = [2,3,4,5], k = 1
Výstup: 5
Vysvětlení: 1 dítě si můžeme vybrat následujícím způsobem:
- Vyberte dítě s hodnotou štěstí == 5. Hodnota štěstí zbývajících dětí se stává [1,2,3].
Součet hodnot štěstí vybraných dětí je 5.

Omezení:

1 <= n == happiness.length <= 2 * 10^5
1 <= happiness[i] <= 10^8
1 <= k <= n

Dostanete pole štěstí délky n a kladné celé číslo k.
Ve frontě stojí n dětí, kde i^té dítě má štěstí a hodnotu štěstí[i]. Chcete vybrat k dětí z těchto n dětí v k tazích.
V každém tahu, když vyberete dítě, se hodnota štěstí všech dětí, které dosud nebyly vybrány, sníží o 1. Všimněte si, že hodnota štěstí nemůže být záporná a sníží se pouze v případě, že je kladná.
Vraťte maximální součet hodnot štěstí vybraných dětí, kterých můžete dosáhnout výběrem k dětí.

Příklad 1:

Vstup: štěstí = [1,2,3], k = 2
Výstup: 4
Vysvětlení: Můžeme vybrat 2 děti následujícím způsobem:
- Vyberte dítě s hodnotou štěstí == 3. Hodnota štěstí zbývajících dětí je [0,1].
- Vyberte dítě s hodnotou štěstí == 1. Hodnota štěstí zbývajícího dítěte se stává [0]. Všimněte si, že hodnota štěstí nemůže být nižší než 0.
Součet hodnot štěstí vybraných dětí je 3 + 1 = 4.

Příklad 2:

Vstup: štěstí = [1,1,1,1], k = 2
Výstup: 1
Vysvětlení: Můžeme vybrat 2 děti následujícím způsobem:
- Vyberte libovolné dítě s hodnotou štěstí == 1. Hodnota štěstí zbývajících dětí je [0,0,0].
- Vyberte dítě s hodnotou štěstí == 0. Hodnota štěstí zbývajícího dítěte je [0,0].
Součet hodnot štěstí vybraných dětí je 1 + 0 = 1.

Příklad 3:

Vstup: štěstí = [2,3,4,5], k = 1
Výstup: 5
Vysvětlení: Jedno dítě můžeme vybrat následujícím způsobem:
- Vyberte dítě s hodnotou štěstí == 5. Hodnota štěstí zbývajících dětí bude [1,2,3].
Součet hodnot štěstí vybraných dětí je 5.

Omezení:

1 <= n == štěstí.length <= 2 * 10^5
1 <= štěstí[i] <= 10^8
1 <= k <= n


Dostanete pole arr o velikosti n sestávající z neprázdných řetězců.
Najděte odpověď pole řetězců o velikosti n tak, aby:

answer[i] je nejkratší podřetězec arr[i], který se nevyskytuje jako podřetězec v žádném jiném řetězci v arr. Pokud existuje více takových podřetězců, odpověď[i] by měla být lexikograficky nejmenší. A pokud žádný takový podřetězec neexistuje, odpověď[i] by měla být prázdný řetězec.

Vraťte odpověď pole.

Příklad 1:

Vstup: arr = ["cab","ad","bad","c"]
Výstup: ["ab","","ba",""]
Vysvětlení: Máme následující:
- Pro řetězec "cab" je nejkratší podřetězec, který se nevyskytuje v žádném jiném řetězci, buď "ca" nebo "ab", volíme lexikograficky menší podřetězec, který je "ab".
- Pro řetězec "ad" neexistuje žádný podřetězec, který by se nevyskytoval v žádném jiném řetězci.
- Pro řetězec "bad" je nejkratší podřetězec, který se nevyskytuje v žádném jiném řetězci, "ba".
- Pro řetězec "c" neexistuje žádný podřetězec, který by se nevyskytoval v žádném jiném řetězci.

Příklad 2:

Vstup: arr = ["abc","bcd","abcd"]
Výstup: ["","","abcd"]
Vysvětlení: Máme následující:
- Pro řetězec "abc" neexistuje žádný podřetězec, který by se nevyskytoval v žádném jiném řetězci.
- Pro řetězec "bcd" neexistuje žádný podřetězec, který by se nevyskytoval v žádném jiném řetězci.
- Pro řetězec "abcd" je nejkratší podřetězec, který se nevyskytuje v žádném jiném řetězci, "abcd".

Omezení:

n == délka arr
2 <= n <= 100
1 <= arr[i].length <= 20
arr[i] se skládá pouze z malých písmen.

Dostanete pole arr o velikosti n sestávající z neprázdných řetězců.
Najděte odpověď pole řetězců o velikosti n tak, aby:

answer[i] je nejkratší podřetězec arr[i], který se nevyskytuje jako podřetězec v žádném jiném řetězci v arr. Pokud existuje více takových podřetězců, odpověď[i] by měla být lexikograficky nejmenší. A pokud žádný takový podřetězec neexistuje, odpověď[i] by měla být prázdný řetězec.

Vraťte odpověď pole.

Příklad 1:

Vstup: arr = ["cab","ad","bad","c"]
Výstup: ["ab","","ba",""]
Vysvětlení: Máme následující:
- Pro řetězec "cab" je nejkratší podřetězec, který se nevyskytuje v žádném jiném řetězci, buď "ca" nebo "ab", volíme lexikograficky menší podřetězec, který je "ab".
- Pro řetězec "ad" neexistuje žádný podřetězec, který by se nevyskytoval v žádném jiném řetězci.
- Pro řetězec "špatný" je nejkratší podřetězec, který se nevyskytuje v žádném jiném řetězci, "ba".
- Pro řetězec "c" neexistuje žádný podřetězec, který by se nevyskytoval v žádném jiném řetězci.

Příklad 2:

Vstup: arr = ["abc","bcd","abcd"]
Výstup: ["","","abcd"]
Vysvětlení: Máme následující:
- Pro řetězec "abc" neexistuje žádný podřetězec, který by se nevyskytoval v žádném jiném řetězci.
- Pro řetězec "bcd" neexistuje žádný podřetězec, který by se nevyskytoval v žádném jiném řetězci.
- Pro řetězec "abcd" je nejkratší podřetězec, který se nevyskytuje v žádném jiném řetězci, "abcd".

Omezení:

n == délka arr
2 <= n <= 100
1 <= arr[i].length <= 20
arr[i] se skládá pouze z malých anglických písmen.

Je vám poskytnuto pole arr o velikosti n, které se skládá z neprázdných řetězců.
Najděte odpověď pole řetězců o velikosti n takovou, že:

answer[i] je nejkratší podřetězec arr[i], který se nevyskytuje jako podřetězec v žádném jiném řetězci v arr. Pokud existuje více takových podřetězců, answer [i] by měla být lexikograficky nejmenší. A pokud žádný takový podřetězec neexistuje, answer [i] by měla být prázdný řetězec.

Vrátí odpověď pole.

Příklad 1:

Vstup: arr = ["cab","ad","bad","c"]
Výstup: ["ab","","ba",""]
Vysvětlení: Máme následující:
- Pro řetězec "cab" je nejkratší podřetězec, který se nevyskytuje v žádném jiném řetězci, buď "ca" nebo "ab", zvolíme lexikograficky menší podřetězec, kterým je "ab".
- Pro řetězec "ad" neexistuje podřetězec, který by se nevyskytoval v žádném jiném řetězci.
- Pro řetězec "bad" je nejkratším podřetězcem, který se nevyskytuje v žádném jiném řetězci, "ba".
- Pro řetězec "c" neexistuje podřetězec, který by se nevyskytoval v žádném jiném řetězci.

Příklad 2:

Vstup: arr = ["abc","bcd","abcd"]
Výstup: ["","","abcd"]
Vysvětlení: Máme následující:
- Pro řetězec "abc" neexistuje žádný podřetězec, který by se nevyskytoval v žádném jiném řetězci.
- Pro řetězec "bcd" neexistuje podřetězec, který by se nevyskytoval v žádném jiném řetězci.
- Pro řetězec "abcd" je nejkratším podřetězcem, který se nevyskytuje v žádném jiném řetězci "abcd".

Omezení:

n == arr.length
2 <= n <= 100
1 <= arr[i].length <= 20
arr[i] se skládá pouze z malých anglických písmen.


Máte dané pole celých čísel nums indexované od 0 délky n a kladné liché celé číslo k.
Síla x podsekvencí je definována jako síla = sum[1] * x - sum[2] * (x - 1) + sum[3] * (x - 2) - sum[4] * (x - 3) + ... + sum[x] * 1, kde sum[i] je součet prvků v i-té podsekvenci. Formálně je síla součet (-1)^i+1 * sum[i] * (x - i + 1) přes všechny i, takové že 1 <= i <= x.
Musíte vybrat k disjunktních podsekvencí z nums, tak, aby jejich síla byla maximální.
Vraťte maximální možnou sílu, kterou lze získat.
Vezměte na vědomí, že vybrané podsekvence nemusí pokrýt celé pole.

Příklad 1:

Vstup: nums = [1,2,3,-1,2], k = 3
Výstup: 22
Vysvětlení: Nejlepší možný způsob výběru 3 podsekvencí je: nums[0..2], nums[3..3], a nums[4..4]. Síla je (1 + 2 + 3) * 3 - (-1) * 2 + 2 * 1 = 22.

Příklad 2:

Vstup: nums = [12,-2,-2,-2,-2], k = 5
Výstup: 64
Vysvětlení: Jediný možný způsob výběru 5 disjunktních podsekvencí je: nums[0..0], nums[1..1], nums[2..2], nums[3..3], a nums[4..4]. Síla je 12 * 5 - (-2) * 4 + (-2) * 3 - (-2) * 2 + (-2) * 1 = 64.

Příklad 3:

Vstup: nums = [-1,-2,-3], k = 1
Výstup: -1
Vysvětlení: Nejlepší možný způsob výběru 1 podsekvence je: nums[0..0]. Síla je -1.

Omezení:

1 <= n <= 10^4
-10^9 <= nums[i] <= 10^9
1 <= k <= n
1 <= n * k <= 10^6
k je liché.

Dostanete 0-indexované pole celých čísel, čísel délky n a kladné liché celé číslo k.
Síla x podpolí je definována jako síla = sum[1] * x - sum[2] * (x - 1) + sum[3] * (x - 2) - sum[4] * (x - 3) + ... + sum[x] * 1, kde sum[i] je součet prvků v i^tém podpoli. Formálně je síla součtem (-1)^i+1 * sum[i] * (x - i + 1) přes všechna i taková, že 1 <= i <= x.
Je třeba vybrat k disjunktních podpolí z nums tak, aby jejich síla byla maximální.
Vraťte maximální možnou sílu, kterou lze získat.
Všimněte si, že vybraná podpole nemusí pokrývat celé pole.

Příklad 1:

Vstup: nums = [1,2,3,-1,2], k = 3
Výstup: 22
Vysvětlení: Nejlepší možný způsob, jak vybrat 3 podpole, je: nums[0..2], nums[3..3] a nums[4..4]. Síla je (1 + 2 + 3) * 3 - (-1) * 2 + 2 * 1 = 22.

Příklad 2:

Vstup: nums = [12,-2,-2,-2,-2], k = 5
Výstup: 64
Vysvětlení: Jediný možný způsob, jak vybrat 5 nesouvislých podpolí je: nums[0..0], nums[1..1], nums[2..2], nums[3..3] a nums[4..4]. Síla je 12 * 5 - (-2) * 4 + (-2) * 3 - (-2) * 2 + (-2) * 1 = 64.

Příklad 3:

Vstup: nums = [-1,-2,-3], k = 1
Výstup: -1
Vysvětlení: Nejlepší možný způsob, jak vybrat 1 podpole, je: nums[0..0]. Síla je -1.

Omezení:

1 <= n <= 10^4
-10^9 <= nums[i] <= 10^9
1 <= k <= n
1 <= n * k <= 10^6
K je zvláštní.

Dostanete 0-indexované pole celých čísel a čísel délky n a kladné liché celé číslo k.
Síla x podpolí je definována jako síla = součet[1] * x - součet[2] * (x - 1) + součet[3] * (x - 2) - součet[4] * (x - 3) + ... + suma[x] * 1 kde suma[i] je součet prvků v i^tém podpole. Formálně je síla součtem (-1)^i+1 * součet[i] * (x - i + 1) přes všechna i tak, že 1 <= i <= x.
Musíte vybrat k disjunktních podpolí z num tak, aby jejich síla byla maximální.
Vraťte maximální možnou sílu, kterou lze získat.
Všimněte si, že vybraná podpole nemusí pokrývat celé pole.

Příklad 1:

Vstup: nums = [1,2,3,-1,2], k = 3
Výstup: 22
Vysvětlení: Nejlepší možný způsob, jak vybrat 3 podpole, je: nums[0..2], nums[3..3] a nums[4..4]. Síla je (1 + 2 + 3) * 3 - (-1) * 2 + 2 * 1 = 22.

Příklad 2:

Vstup: nums = [12,-2,-2,-2,-2], k = 5
Výstup: 64
Vysvětlení: Jediný možný způsob, jak vybrat 5 nesouvislých podpolí, je: nums[0..0], nums[1..1], nums[2..2], nums[3..3] a nums[4. .4]. Síla je 12 * 5 - (-2) * 4 + (-2) * 3 - (-2) * 2 + (-2) * 1 = 64.

Příklad 3:

Vstup: nums = [-1,-2,-3], k = 1
Výstup: -1
Vysvětlení: Nejlepší možný způsob výběru 1 podpole je: nums[0..0]. Síla je -1.

Omezení:

1 <= n <= 10^4
-10^9 <= nums[i] <= 10^9
1 <= k <= n
1 <= n * k <= 10^6
k je liché.


Zadaný řetězec s, najděte libovolný podřetězec délky 2, který je také přítomen v obráceném řetězci s.
Vraťte true, pokud takový podřetězec existuje, a false jinak.

Příklad 1:

Vstup: s = "leetcode"
Výstup: true
Vysvětlení: Podřetězec "ee" je délky 2, který je také přítomen v reverse(s) == "edocteel".

Příklad 2:

Vstup: s = "abcba"
Výstup: true
Vysvětlení: Všechny podřetězce délky 2 "ab", "bc", "cb", "ba" jsou také přítomné v reverse(s) == "abcba".

Příklad 3:

Vstup: s = "abcd"
Výstup: false
Vysvětlení: Neexistuje žádný podřetězec délky 2 v s, který by byl také přítomen v obráceném řetězci s.

Omezení:

1 <= s.length <= 100
s se skládá pouze z malých písmen anglické abecedy.

Byl ti zadán řetězec s. Najdi libovolný podřetězec délky 2, který je také přítomen v obráceném řetězci s.
Vrať true, pokud takový podřetězec existuje, a false pokud ne.

Příklad 1:

Vstup: s = "leetcode"
Výstup: true
Vysvětlení: Podřetězec "ee" je délky 2, který je také přítomen v reverse(s) == "edocteel".

Příklad 2:

Vstup: s = "abcba"
Výstup: true
Vysvětlení: Všechny podřetězce délky 2 "ab", "bc", "cb", "ba" jsou také přítomné v reverse(s) == "abcba".

Příklad 3:

Vstup: s = "abcd"
Výstup: false
Vysvětlení: Neexistuje žádný podřetězec délky 2 v s, který by byl také přítomen v obráceném řetězci s.

Omezení:

1 <= s.length <= 100
s se skládá pouze z malých písmen anglické abecedy.

Je-li daný řetězec s, najděte libovolný podřetězec délky 2, který je také přítomen v obráceném řetězci s.
Vraťte true, pokud takový podřetězec existuje, jinak vraťte false.

Příklad 1:

Vstup: s = "leetcode"
Výstup: pravda
Vysvětlení: Podřetězec "ee" má délku 2, která je také přítomna v obráceném směru == "edocteel".

Příklad 2:

Vstup: s = "abcba"
Výstup: pravda
Vysvětlení: Všechny podřetězce délky 2 "ab", "bc", "cb", "ba" jsou také přítomny obráceně == "abcba".

Příklad 3:

Vstup: s = "abcd"
Výstup: nepravda
Vysvětlení: Neexistuje žádný podřetězec délky 2 v s, který je také přítomen v obráceném řetězci s.

Omezení:

1 <= s.length <= 100
s se skládá pouze z malých anglických písmen.


Dostanete řetězec s a znak c. Vrátíte celkový počet podřetězců s, které začínají a končí na c.

Příklad 1:

Vstup: s = "abada", c = "a"
Výstup: 6
Vysvětlení: Podřetězce začínající a končící na "a" jsou: "abada", "abada", "abada", "abada", "abada", "abada".

Příklad 2:

Vstup: s = "zzz", c = "z"
Výstup: 6
Vysvětlení: V s je celkem 6 podřetězců a všechny začínají a končí na "z".

Omezení:

1 <= s.length  <= 10^5
s a c se skládají pouze z malých anglických písmen.

Je zadán řetězec s a znak c. Vraťte celkový počet podřetězců řetězce s, které začínají a končí znakem c.

Příklad 1:

Vstup: s = „abada“, c = „a“
Výstup: 6
Vysvětlení: Podřetězce začínající a končící na „a“ jsou: "abada“, "a", "abada", "ada", "a", "a", "a".

Příklad 2:

Vstup: s = „zzz“, c = „z“
Výstup: 6
Vysvětlení: V řetězci s je celkem 6 podřetězců a všechny začínají a končí na „z“.

Omezení:

1 <= s.length <= 10^5
s a c se skládají pouze z malých anglických písmen.

Je vám dán řetězec s a znak c. Vrátit celkový počet podřetězců z s, které začínají a končí s c.

Příklad 1:

Vstup: s = "abada", c = "a"
Výstup: 6
Vysvětlení: Podřetězce, které začínají a končí s "a" jsou: "a", "abada", "ada", "a", "ada" a "a".

Příklad 2:

Vstup: s = "zzz", c = "z"
Výstup: 6
Vysvětlení: V řetězci s je celkem 6 podřetězců a všechny začínají a končí s "z".

Omezení:

1 <= s.length <= 10^5
s a c obsahují pouze malá písmena anglické abecedy.


Dostanete řetězcové slovo a celé číslo k.
Slovo považujeme za k-speciální, pokud |freq(slovo[i]) - frekv(slovo[j])| <= k pro všechny indexy i a j v řetězci.
Freq(x) zde označuje frekvenci znaku x ve slově a |y| označuje absolutní hodnotu y.
Vraťte minimální počet znaků, které potřebujete odstranit, aby bylo slovo k-speciální.

Příklad 1:

Vstup: slovo = "aabcaba", k = 0
Výstup: 3
Vysvětlení: Slovo 0 můžeme ozvláštnit odstraněním 2 výskytů „a“ a 1 výskytu „c“. Slovo se tedy rovná „baba“, kde freq('a') == freq('b') == 2.

Příklad 2:

Vstup: slovo = "dabdcbdcdcd", k = 2
Výstup: 2
Vysvětlení: Slovo 2 můžeme ozvláštnit vymazáním 1 výskytu "a" a 1 výskytu "d". Slovo se tedy rovná "bdcbdcdcd", kde freq('b') == 2, freq('c') == 3 a freq('d') == 4.

Příklad 3:

Vstup: slovo = "aaabaaa", k = 2
Výstup: 1
Vysvětlení: Slovo 2 můžeme ozvláštnit vymazáním 1 výskytu "b". Proto se slovo rovná „aaaaaa“, kde frekvence každého písmene je nyní jednotně 6.

Omezení:

1 <= délka slova <= 10^5
0 <= k <= 10^5
slovo se skládá pouze z malých anglických písmen.

Dostanete řetězcové slovo a celé číslo k.
Slovo považujeme za k-speciální, pokud |freq(slovo[i]) - frekv(slovo[j])| <= k pro všechny indexy i a j v řetězci.
Freq(x) zde označuje frekvenci znaku x ve slově a |y| označuje absolutní hodnotu y.
Vraťte minimální počet znaků, které potřebujete odstranit, aby bylo slovo k-speciální.

Příklad 1:

Vstup: slovo = "aabcaba", k = 0
Výstup: 3
Vysvětlení: Slovo 0 můžeme ozvláštnit odstraněním 2 výskytů „a“ a 1 výskytu „c“. Slovo se tedy rovná „baba“, kde freq('a') == freq('b') == 2.

Příklad 2:

Vstup: slovo = "dabdcbdcdcd", k = 2
Výstup: 2
Vysvětlení: Slovo 2 můžeme ozvláštnit vymazáním 1 výskytu „a“ a 1 výskytu „d“. Slovo se tedy rovná "bdcbdcdcd", kde freq('b') == 2, freq('c') == 3 a freq('d') == 4.

Příklad 3:

Vstup: slovo = "aaabaaa", k = 2
Výstup: 1
Vysvětlení: Slovo 2 můžeme ozvláštnit vymazáním 1 výskytu "b". Proto se slovo rovná „aaaaaa“, kde frekvence každého písmene je nyní jednotně 6.

Omezení:

1 <= délka slova <= 10^5
0 <= k <= 10^5
slovo se skládá pouze z malých anglických písmen.

Je vám dáno řetězcové slovo a celé číslo k.
Slovo považujeme za k-speciální, pokud  |freq(word[i]) - freq(word[j])| <= k pro všechny indexy i a j v řetězci.
Zde freq(x) označuje frekvenci znaku x ve slově a |y| Označuje absolutní hodnotu y.
Vrátí minimální počet znaků, které je třeba odstranit, aby bylo slovo k-speciální.

Příklad 1:

Vstup: word = "aabcaba", k = 0
Výstup: 3
Vysvětlení: Slovo 0 můžeme ozvláštnit odstraněním 2 výskytů "a" a 1 výskytu "c". Proto se slovo rovná "baba", kde freq('a') == freq('b') == 2.

Příklad 2:

Vstup: word = "dabdcbdcdcd", k = 2
Výstup: 2
Vysvětlení: Slovo 2 můžeme ozvláštnit odstraněním 1 výskytu "a" a 1 výskytu "d". Proto se slovo rovná "bdcbdcdcd", kde freq('b') == 2, freq('c') == 3 a freq('d') == 4.

Příklad 3:

Vstup: word = "aaabaaa", k = 2
Výstup: 1
Vysvětlení: Slovo 2 můžeme ozvláštnit odstraněním 1 výskytu slova "b". Proto se slovo rovná "aaaaaa", kde frekvence každého písmene je nyní rovnoměrně 6.

Omezení:

1 <= word.length <= 10^5
0 <= k <= 10^5
word se skládá pouze z malých anglických písmen.


Máte binární pole nums délky n, kladné celé číslo k a nezáporné celé číslo maxChanges. Alice hraje hru, jejímž cílem je, aby Alice vybrala k jedniček z nums s minimálním počtem tahů. Když hra začne, Alice vybere libovolný index aliceIndex v rozmezí [0, n - 1] a stoupne si tam. Pokud nums[aliceIndex] == 1, Alice vezme jedničku a nums[aliceIndex] se stane 0 (toto se nepočítá jako tah). Poté může Alice provést libovolný počet tahů (včetně nuly), kde v každém tahu musí Alice provést přesně jednu z následujících akcí:

Vyberte libovolný index j != aliceIndex tak, že nums[j] == 0 a nastavte nums[j] = 1. Tato akce může být provedena nejvýše maxChanges krát.
Vyberte libovolné dva sousední indexy x a y (|x - y| == 1) tak, že nums[x] == 1, nums[y] == 0, pak vyměňte jejich hodnoty (nastavte nums[y] = 1 a nums[x] = 0). Pokud y == aliceIndex, Alice vezme jedničku po tomto tahu a nums[y] se stane 0.

Vrátí minimální počet tahů, které Alice potřebuje, aby vybrala přesně k jedniček.

Příklad 1:

Vstup: nums = [1,1,0,0,0,1,1,0,0,1], k = 3, maxChanges = 1
Výstup: 3
Vysvětlení: Alice může vybrat 3 jedničky ve 3 tazích, pokud Alice provede následující akce v každém tahu, když stojí na aliceIndex == 1:

 Na začátku hry Alice vezme jedničku a nums[1] se stane 0. nums se stane [1,1,1,0,0,1,1,0,0,1].
Vyberte j == 2 a proveďte akci prvního typu. nums se stane [1,0,1,0,0,1,1,0,0,1]
Vyberte x == 2 a y == 1 a proveďte akci druhého typu. nums se stane [1,1,0,0,0,1,1,0,0,1]. Protože y == aliceIndex, Alice vezme jedničku a nums se stane [1,0,0,0,0,1,1,0,0,1].
Vyberte x == 0 a y == 1 a proveďte akci druhého typu. nums se stane [0,1,0,0,0,1,1,0,0,1]. Protože y == aliceIndex, Alice vezme jedničku a nums se stane [0,0,0,0,0,1,1,0,0,1].

Všimněte si, že je možné, aby Alice vybrala 3 jedničky pomocí nějaké jiné sekvence 3 tahů.

Příklad 2:

Vstup: nums = [0,0,0,0], k = 2, maxChanges = 3
Výstup: 4
Vysvětlení: Alice může vybrat 2 jedničky ve 4 tazích, pokud Alice provede následující akce v každém tahu, když stojí na aliceIndex == 0:

Vyberte j == 1 a proveďte akci prvního typu. nums se stane [0,1,0,0].
Vyberte x == 1 a y == 0 a proveďte akci druhého typu. nums se stane [1,0,0,0]. Protože y == aliceIndex, Alice vezme jedničku a nums se stane [0,0,0,0].
Vyberte znovu j == 1 a proveďte akci prvního typu. nums se stane [0,1,0,0].
Vyberte znovu x == 1 a y == 0 a proveďte akci druhého typu. nums se stane [1,0,0,0]. Protože y == aliceIndex, Alice vezme jedničku a nums se stane [0,0,0,0].

Omezení:

2 <= n <= 10^5
0 <= nums[i] <= 1
1 <= k <= 10^5
0 <= maxChanges <= 10^5
maxChanges + sum(nums) >= k

maxChanges.
Alice hraje hru, jejímž cílem je, aby Alice sebrala k jedniček z nums pomocí minimálního počtu tahů. Na začátku hry si Alice vybere libovolný index aliceIndex v rozsahu [0, n - 1] a stojí na něm. Pokud nums[aliceIndex] == 1 , vezme Alice jedničku a nums[aliceIndex] se stane 0 (to se nepočítá jako tah). Poté může Alice provést libovolný počet tahů (včetně nuly), přičemž v každém tahu musí Alice provést přesně jednu z následujících akcí:

Vybrat libovolný index j != aliceIndex takový, že nums[j] == 0, a nastavit nums[j] = 1. Tuto akci lze provést maximálně maxZměn.
Vyberte libovolné dva sousední indexy x a y (|x - y| == 1) tak, že nums[x] == 1, nums[y] == 0, a prohoďte jejich hodnoty (nastavte nums[y] = 1 a nums[x] = 0). Pokud y == aliceIndex, vezme si Alice po tomto tahu jedničku a nums[y] se stane 0.

Vraťte minimální počet tahů, které Alice potřebuje, aby vybrala přesně k jedniček.

Příklad 1:

Vstup: nums = [1,1,0,0,0,1,1,0,0,1], k = 3, maxChanges = 1
Výstup: 3
Vysvětlení: Alice může sebrat 3 jedničky ve 3 tazích, pokud Alice v každém tahu provede následující akce, když stojí na aliceIndex == 1:

Na začátku hry Alice sebere jedničku a nums[1] se stane 0. nums se stane [1,0,1,0,0,1,1,0,0,1].
Vyberte j == 2 a proveďte akci prvního typu. nums se stane [1,0,1,0,0,1,1,0,0,1].
Vyberte x == 2 a y == 1 a proveďte akci druhého typu. nums se stane [1,1,0,0,0,0,1,1,0,0,1]. Protože y == aliceIndex, Alice si vybere jedničku a z nums se stane [1,0,0,0,0,0,1,1,0,0,1].
Vyberte x == 0 a y == 1 a proveďte akci druhého typu. nums se stane [0,1,0,0,0,0,1,1,0,0,1]. Protože y == aliceIndex, Alice si vybere jedničku a nums se stane [0,0,0,0,0,0,1,1,0,0,1].

Všimněte si, že může být možné, aby Alice sebrala 3 jedničky pomocí nějaké jiné posloupnosti 3 tahů.

Příklad 2:

Vstup: nums = [0,0,0,0], k = 2, maxChanges = 3
Výstup: 4
Vysvětlení: Alice může sebrat 2 jedničky ve 4 tazích, pokud v každém tahu, kdy stojí na aliceIndex == 0, provede následující akce:

Vyberte j == 1 a proveďte akci prvního typu. nums se stane [0,1,0,0].
Vyberte x == 1 a y == 0 a proveďte akci druhého typu. nums se stane [0,0,0,0] . Protože y == aliceIndex, Alice si vybere jedničku a nums se stane [0,0,0,0].
Vyberte opět j == 1 a proveďte akci prvního typu. nums se stane [0,1,0,0].
Vyberte opět x == 1 a y == 0 a proveďte akci druhého typu. nums se stane [0,0,0,0] . Protože y == aliceIndex, Alice si vybere jedničku a nums se stane [0,0,0,0].

Omezení:

2 <= n <= 10^5
0 <= nums[i] <= 1
1 <= k <= 10^5
0 <= maxChanges <= 10^5
maxChanges + sum(nums) >= k

Dostanete binární pole nums o délce n, kladné celé číslo k a nezáporné celé číslo maxChanges.
Alenka hraje hru, ve které je cílem, aby Alenka sebrala k jedniček z čísel s použitím minimálního počtu tahů. Když hra začne, Alice si vybere libovolný index aliceIndex v rozsahu [0, n - 1] a postaví se tam. Pokud nums[aliceIndex] == 1 , Alice zvedne jedničku a nums[aliceIndex] se změní na 0 (to se nepočítá jako tah). Poté může Alice provést libovolný počet tahů (včetně nuly), přičemž v každém tahu musí Alice provést přesně jednu z následujících akcí:

Vyberte libovolný index j != aliceIndex tak, že nums[j] == 0 a nastavte nums[j] = 1. Tuto akci lze provést maximálně maxChanges-krát.
Vyberte libovolné dva sousední indexy x a y (|x - y| == 1) tak, aby nums[x] == 1, nums[y] == 0, a pak prohodili jejich hodnoty (set nums[y] = 1 a nums[x] = 0). Pokud y == aliceIndex, Alice zvedne jedničku po tomto tahu a číslo [y] se změní na 0.

Vrátí minimální počet tahů, které Alenka potřebuje k výběru přesně k.

Příklad 1:

Vstup: nums  = [1,1,0,0,0,1,1,0,0,1], k = 3, maxChanges = 1
Výstup: 3
Vysvětlení: Alice může sebrat 3 jedničky ve 3 tazích, pokud Alice provede následující akce v každém tahu, když stojí na aliceIndex == 1:

Na začátku hry Alice zvedne jedničku a z nums [1] se stane 0. Z nums  se stane [1,1,1,0,0,1,1,0,0,1].
Vyberte j == 2 a proveďte akci prvního typu. Z nums  se stane [1,0,1,0,0,1,1,0,0,1]
Vyberte x == 2 a y == 1 a proveďte akci druhého typu. Z nums  se stane [1,1,0,0,0,1,1,0,0,1]. Když y == aliceIndex, Alice vybere jedničku a z nums se stane [1,0,0,0,0,1,1,0,0,1].
Vyberte x == 0 a y == 1 a proveďte akci druhého typu. Nums se změní na [0,1,0,0,0,1,1,0,0,1]. Když y == aliceIndex, Alice vybere jedničku a z nums  se stane [0,0,0,0,0,1,1,0,0,1].

Všimněte si, že Alice může sebrat 3 tahy pomocí jiné sekvence 3 tahů.

Příklad 2:

Vstup: nums = [0,0,0,0], k = 2, maxChanges = 3
Výstup: 4
Vysvětlení: Alice může sebrat 2 jedničky ve 4 tazích, pokud Alice provede následující akce v každém tahu, když stojí na aliceIndex == 0:

Vyberte j == 1 a proveďte akci prvního typu. Z nums  se stane [0,1,0,0].
Vyberte x == 1 a y == 0 a proveďte akci druhého typu. Z nums  se stane [1,0,0,0]. Když y == aliceIndex, Alice vybere jedničku a z nums  se stane [0,0,0,0].
Znovu vyberte j == 1 a proveďte akci prvního typu. Z nums  se stane [0,1,0,0].
Znovu vyberte x == 1 a y == 0 a proveďte akci druhého typu. Z nums  se stane [1,0,0,0]. Když y == aliceIndex, Alice vybere jedničku a z nums  se stane [0,0,0,0].

Omezení:

2 <= n <= 10^5
0 <= nums[i] <= 1
1 <= k <= 10^5
0 <= maxChanges <= 10^5
maxChanges + sum(nums) >= k


Zadaný řetězec s vrátí maximální délku podřetězce tak, aby obsahoval maximálně dva výskyty každého znaku.

Příklad 1:

Vstup: s = "bcbbbcba"
Výstup: 4
Vysvětlení:
Následující podřetězec má délku 4 a obsahuje maximálně dva výskyty každého znaku: "bcbbbcba".
Příklad 2:

Vstup: s = "aaaa"
Výstup: 2
Vysvětlení:
Následující podřetězec má délku 2 a obsahuje maximálně dva výskyty každého znaku: "aaaa".

Omezení:

2 <= s.length <= 100
s se skládá pouze z malých anglických písmen.

Je dán řetězec s, vraťte maximální délku podřetězce tak, aby obsahoval nejvýše dva výskyty každého znaku.

Příklad 1:

Vstup: s = "bcbbbcba"
Výstup: 4
Vysvětlení:
Následující podřetězec má délku 4 a obsahuje nejvýše dva výskyty každého znaku: "bcbbbcba".
Příklad 2:

Vstup: s = "aaaa"
Výstup: 2
Vysvětlení:
Následující podřetězec má délku 2 a obsahuje nejvýše dva výskyty každého znaku: "aaaa".

Omezení:

2 <= s.length <= 100
s se skládá pouze z malých písmen anglické abecedy.


Je vám dáno kladné celé číslo k. Na začátku máte pole nums = [1]. Na tomto poli můžete provádět libovolný počet následujících operací (případně žádnou):

Vyberte libovolný prvek v poli a zvyšte jeho hodnotu o 1.
Duplikujte libovolný prvek v poli a přidejte jej na konec pole.

Vrátí minimální počet operací potřebných k tomu, aby součet prvků finálního pole byl větší nebo roven k.

Příklad 1:

Vstup: k = 11
Výstup: 5
Vysvětlení:
Můžeme provést následující operace na poli nums = [1]:

Zvýšit prvek třikrát o 1. Výsledné pole je nums = [4].
Duplikovat prvek dvakrát. Výsledné pole je nums = [4,4,4].

Součet finálního pole je 4 + 4 + 4 = 12, což je větší nebo rovno k = 11.
Celkový počet provedených operací je 3 + 2 = 5.

Příklad 2:

Vstup: k = 1
Výstup: 0
Vysvětlení:
Součet původního pole je již větší nebo roven 1, takže žádné operace nejsou potřeba.

Omezení:

1 <= k <= 10^5

Máte kladné celé číslo k. Zpočátku máte pole nums = [1].
Libovolnou z následujících operací s polem můžete provést libovolný počet opakování (možná nula):

Vyberte libovolný prvek v poli a zvyšte jeho hodnotu o 1.
Duplikujte libovolný prvek v poli a přidejte jej na konec pole.

Vrátí minimální počet operací potřebných k tomu, aby byl součet prvků konečného pole větší nebo roven k.

Příklad 1:

Vstup: k = 11
Výstup: 5
Vysvětlení:
Na poli nums = [1] můžeme provést následující operace:

Zvyšte prvek o 1 třikrát. Výsledné pole je nums = [4].
Duplikujte prvek dvakrát. Výsledné pole je nums = [4,4,4].

Součet konečného pole je 4 + 4 + 4 = 12, což je větší nebo rovno k = 11.
Celkový počet provedených operací je 3 + 2 = 5.

Příklad 2:

Vstup: k = 1
Výstup: 0
Vysvětlení:
Součet původního pole je již větší nebo roven 1, takže nejsou potřeba žádné operace.

Omezení:

1 <= k <= 10^5

Je vám dáno kladné celé číslo k. Zpočátku máte pole nums = [1].
S polem můžete provést libovolnou z následujících operací libovolným počtem opakování (možná nulou):

Vyberte libovolný prvek v poli a zvyšte jeho hodnotu o 1.
Duplikujte libovolný prvek v poli a přidejte jej na konec pole.

Vrátí minimální počet operací potřebných k tomu, aby součet prvků výsledné matice byl větší nebo roven k.

Příklad 1:

Vstup: k = 11
Výstup: 5
Vysvětlení:
S polem nums = [1] můžeme provádět následující operace:

Zvyšte prvek o 1 třikrát. Výsledné pole má nums = [4].
Duplikujte prvek dvakrát. Výsledné pole je nums = [4,4,4].

Součet konečného pole je 4 + 4 + 4 = 12, což je větší nebo rovno k = 11.
Celkový počet provedených operací je 3 + 2 = 5.

Příklad 2:

Vstup: k = 1
Výstup: 0
Vysvětlení:
Součet původního pole je již větší nebo roven 1, takže nejsou potřeba žádné operace.

Omezení:

1 <= k <= 10^5


Problém zahrnuje sledování četnosti ID v kolekci, která se v průběhu času mění. Máte dva celočíselné pole, nums a freq , obě o stejné délce n. Každý prvek v nums reprezentuje ID a odpovídající prvek v freq označuje, kolikrát má být toto ID přidáno do kolekce nebo z ní odstraněno v každém kroku.

Přidání ID: Pokud je `freq[i]` kladné, znamená to, že freq[i] ID s hodnotou nums[i] bude přidáno do kolekce v kroku i.
Odebrání ID: Pokud je freq[i] záporné, znamená to, že  freq[i] ID s hodnotou nums[i] bude z kolekce odstraněno v kroku i.

Vrátit pole `ans` délky `n`, kde `ans[i]` reprezentuje počet nejčastějšího ID v kolekci po `i`-tém kroku. Pokud je kolekce v určitém kroku prázdná, `ans[i]` by mělo být `0` pro tento krok.

Příklad 1:

Vstup: nums = [2,3,2,1], freq = [3,2,-3,1]
Výstup: [3,3,2,2]
Vysvětlení:
Po kroku 0 máme 3 ID s hodnotou 2. Takže ans[0] = 3.
Po kroku 1 máme 3 ID s hodnotou 2 a 2 ID s hodnotou 3. Takže ans[1] = 3.
Po kroku 2 máme 2 ID s hodnotou 3. Takže ans[2] = 2.
Po kroku 3 máme 2 ID s hodnotou 3 a 1 ID s hodnotou 1. Takže ans[3] = 2.

Příklad 2:

Vstup: nums = [5,5,3], freq = [2,-2,1]
Výstup: [2,0,1]
Vysvětlení:
Po kroku 0 máme 2 ID s hodnotou 5. Takže ans[0] = 2.
Po kroku 1 nejsou žádná ID. Takže ans[1] = 0.
Po kroku 2 máme 1 ID s hodnotou 3. Takže ans[2] = 1.

---

Omezení:

- 1 <= nums.length == freq.length <= 10^5
- 1 <= nums[i] <= 10^5
- -10^5 <= freq[i] <= 10^5
- freq[i] != 0
- Vstup je vytvořen tak, aby výskyt ID nikdy nebyl záporný v žádném kroku.

Problém se týká sledování četnosti ID v kolekci, která se v průběhu času mění. Máte dvě celočíselná pole, nums a freq, o stejné délce n. Každý prvek v nums představuje ID a odpovídající prvek ve freq označuje, kolikrát by mělo být toto ID přidáno nebo odebráno z kolekce v každém kroku.

Přidání ID: Pokud freq[i] je kladné, znamená to, že freq[i] ID s hodnotou nums[i] jsou přidány do kolekce v kroku i.
Odebrání ID: Pokud freq[i] je záporná, znamená to, že -freq[i] ID s hodnotou nums[i] jsou odebrána z kolekce v kroku i.

Vrací pole ans o délce n, kde ans[i] představuje počet nejčastějších ID v kolekci po i^tém kroku. Pokud je kolekce v některém kroku prázdná, ans[i] by měla být pro tento krok 0.

Příklad 1:

Vstup: nums = [2,3,2,1], freq = [3,2,-3,1]
Výstup: [3,3,2,2]
Vysvětlení:
Po kroku 0 máme 3 ID s hodnotou 2. Takže ans[0] = 3.
Po kroku 1 máme 3 ID s hodnotou 2 a 2 ID s hodnotou 3. Takže ans[1] = 3.
Po kroku 2 máme 2 ID s hodnotou 3. Takže ans[2] = 2.
Po kroku 3 máme 2 ID s hodnotou 3 a 1 ID s hodnotou 1. Takže ans[3] = 2.

Příklad 2:

Vstup: nums = [5,5,3], freq = [2,-2,1]
Výstup: [2,0,1]
Vysvětlení:
Po kroku 0 máme 2 ID s hodnotou 5. Takže ans[0] = 2.
Po kroku 1 nejsou k dispozici žádná ID. Takže ans[1] = 0.
Po kroku 2 máme 1 ID s hodnotou 3. Takže ans[2] = 1.

Omezení:

1 <= nums.length == freq.length <= 10^5
1 <= nums[i] <= 10^5
-10^5 <= freq[i] <= 10^5
freq[i] != 0
Vstup je generován tak, aby výskyty ID nebyly v žádném kroku záporné.

Problém spočívá ve sledování frekvence ID v kolekci, která se v průběhu času mění. Máte dvě celočíselná pole, nums a frekv, o stejné délce n. Každý prvek v nums představuje ID a odpovídající prvek ve frekvenci udává, kolikrát by mělo být toto ID v každém kroku přidáno do kolekce nebo z ní odstraněno.

Přidání ID: Pokud je freq[i] kladné, znamená to, že ID frekvence[i] s hodnotou nums[i] jsou přidány do kolekce v kroku i.
Odstranění ID: Pokud je freq[i] záporné, znamená to, že -freq[i] ID s hodnotou nums[i] jsou v kroku i odstraněny z kolekce.

Vrátí pole ans délky n, kde ans[i] představuje počet nejčastějších ID v kolekci po i^tém kroku. Pokud je kolekce v kterémkoli kroku prázdná, ans[i] by měl být pro daný krok 0.

Příklad 1:

Vstup: nums = [2,3,2,1], frekv = [3,2,-3,1]
Výstup: [3,3,2,2]
Vysvětlení:
Po kroku 0 máme 3 ID s hodnotou 2. Takže ans[0] = 3.
Po kroku 1 máme 3 ID s hodnotou 2 a 2 ID s hodnotou 3. Takže ans[1] = 3.
Po kroku 2 máme 2 ID s hodnotou 3. Takže ans[2] = 2.
Po kroku 3 máme 2 ID s hodnotou 3 a 1 ID s hodnotou 1. Takže ans[3] = 2.

Příklad 2:

Vstup: nums = [5,5,3], frekv = [2,-2,1]
Výstup: [2,0,1]
Vysvětlení:
Po kroku 0 máme 2 ID s hodnotou 5. Takže ans[0] = 2.
Po kroku 1 nejsou žádná ID. Takže ans[1] = 0.
Po kroku 2 máme 1 ID s hodnotou 3. Takže ans[2] = 1.

Omezení:

1 <= nums.length == frekv.length <= 10^5
1 <= nums[i] <= 10^5
-10^5 <= frekvence[i] <= 10^5
frekvence[i] != 0
Vstup je generován tak, že výskyty ID nebudou v žádném kroku záporné.


Input:
Máte dva pole řetězců: `wordsContainer` a `wordsQuery`.
Pro každý `wordsQuery[i]` musíte najít řetězec z `wordsContainer`, který má nejdelší společnou koncovku s `wordsQuery[i]`. Pokud existují dva nebo více řetězců v `wordsContainer`, které sdílí nejdelší společnou koncovku, vyberte řetězec s nejmenší délkou. Pokud existuje více takových řetězců se stejnou nejmenší délkou, vyberte ten, který se objevil dříve ve `wordsContainer`.
Vrátit pole celých čísel `ans`, kde `ans[i]` je index řetězce v `wordsContainer`, který má nejdelší společnou koncovku s `wordsQuery[i]`.

Příklad 1:

Vstup: wordsContainer = ["abcd","bcd","xbcd"], wordsQuery = ["cd","bcd","xyz"]
Výstup: [1,1,1]
Vysvětlení:
Podívejme se na každé wordsQuery[i] zvlášť:

Pro wordsQuery[0] = "cd", řetězce z wordsContainer, které sdílejí nejdelší společnou koncovku "cd", jsou na indexech 0, 1 a 2. Mezi nimi je odpovědí řetězec na indexu 1, protože má nejkratší délku 3.
Pro wordsQuery[1] = "bcd", řetězce z wordsContainer, které sdílejí nejdelší společnou koncovku "bcd", jsou na indexech 0, 1 a 2. Mezi nimi je odpovědí řetězec na indexu 1, protože má nejkratší délku 3.
Pro wordsQuery[2] = "xyz", žádný řetězec z wordsContainer nesdílí společnou koncovku. Tudíž nejdelší společnou koncovkou je "", která je sdílena s řetězci na indexech 0, 1 a 2. Mezi nimi je odpovědí řetězec na indexu 1, protože má nejkratší délku 3.

Příklad 2:

Vstup: wordsContainer = ["abcdefgh","poiuygh","ghghgh"], wordsQuery = ["gh","acbfgh","acbfegh"]
Výstup: [2,0,2]
Vysvětlení:
Podívejme se na každé wordsQuery[i] zvlášť:

Pro wordsQuery[0] = "gh", řetězce z wordsContainer, které sdílejí nejdelší společnou koncovku "gh", jsou na indexech 0, 1 a 2. Mezi nimi je odpovědí řetězec na indexu 2, protože má nejkratší délku 6.
Pro wordsQuery[1] = "acbfgh", pouze řetězec na indexu 0 sdílí nejdelší společnou koncovku "fgh". Proto je to odpověď, i když řetězec na indexu 2 je kratší.
Pro wordsQuery[2] = "acbfegh", řetězce z wordsContainer, které sdílejí nejdelší společnou koncovku "gh", jsou na indexech 0, 1 a 2. Mezi nimi je odpovědí řetězec na indexu 2, protože má nejkratší délku 6.

Omezení:

1 <= wordsContainer.length, wordsQuery.length <= 10^4
1 <= wordsContainer[i].length <= 5 * 10^3
1 <= wordsQuery[i].length <= 5 * 10^3
wordsContainer[i] se skládá pouze z malých písmen anglické abecedy.
wordsQuery[i] se skládá pouze z malých písmen anglické abecedy.
Součet wordsContainer[i].length je nejvýše 5 * 10^5.
Součet wordsQuery[i].length je nejvýše 5 * 10^5.

Jsou vám dána dvě pole řetězců wordsContainer a wordsQuery.
Pro každý wordsQuery[i] musíte najít řetězec z wordContainer, který má nejdelší společnou příponu s wordsQuery[i]. Pokud jsou ve wordContainer dva nebo více řetězců, které sdílejí nejdelší společnou příponu, najděte řetězec, který má nejmenší délku. Pokud existují dva nebo více takových řetězců, které mají stejnou nejmenší délku, vyberte ten, který se vyskytuje dříve v wordsContainer.
Vrátí pole celých čísel ans, kde ans[i] je index řetězce ve wordContainer, který má nejdelší společnou příponu s wordsQuery[i].

Příklad 1:

Vstup: wordsContainer = ["abcd","bcd","xbcd"], wordsQuery = ["cd","bcd","xyz"]
Výstup: [1,1,1]
Vysvětlení:
Podívejme se na každé wordsQuery[i] zvlášť:

Pro wordsQuery[0] = "cd" jsou řetězce ze wordContainer, které sdílejí nejdelší společnou příponu "cd" na indexech 0, 1 a 2. Mezi nimi je odpovědí řetězec na indexu 1, protože je nejkratší (3 znaky).
Pro wordsQuery[1] = "bcd" jsou řetězce ze wordContainer, které sdílejí nejdelší společnou příponu "bcd" na indexech 0, 1 a 2. Mezi nimi je odpovědí řetězec na indexu 1, protože je nejkratší (3 znaky).
Pro wordsQuery[2] = "xyz" neexistuje žádný řetězec z wordContainer, který by sdílel společnou příponu. Nejdelší společná přípona je tedy "", která je sdílena s řetězci na indexu 0, 1 a 2. Mezi nimi je odpovědí řetězec na indexu 1, protože je nejkratší (3 znaky).

Příklad 2:

Vstup: wordsContainer = ["abcdefgh","poiuygh","ghghgh"], wordsQuery = ["gh","acbfgh","acbfegh"]
Výstup: [2,0,2]
Vysvětlení:
Podívejme se na každé wordsQuery[i] zvlášť:

Pro wordsQuery[0] = "gh" jsou řetězce z wordContainer, které sdílejí nejdelší společnou příponu "gh" na indexech 0, 1 a 2. Mezi nimi je odpovědí řetězec na indexu 2, protože má nejkratší délku 6.
Pro wordsQuery[1] = "acbfgh" pouze řetězec na indexu 0 sdílí nejdelší společnou příponu "fgh". Proto je to odpověď, i když řetězec na indexu 2 je kratší.
Pro wordsQuery[2] = "acbfegh" jsou řetězce z wordsContainer, které sdílejí nejdelší společnou příponu "gh", na indexech 0, 1 a 2. Mezi nimi je odpovědí řetězec na indexu 2, protože má nejkratší délku 6.

Omezení:

1 <= wordsContainer.length, wordsQuery.length <= 10^4
1 <= délka wordsContainer[i] <= 5 * 10^3
1 <= délka wordsContainer[i] <= 5 * 10^3
wordsContainer[i] se skládá pouze z malých anglických písmen.
wordsQuery[i] se skládá pouze z malých anglických písmen.
Součet slovContainer[i].length je maximálně 5 * 10^5.
Součet slovDotaz[i].length je maximálně 5 * 10^5.

Jsou vám dána dvě pole řetězců wordsContainer a wordsQuery.
Pro každý wordsQuery[i] musíte najít řetězec z wordsContainer, který má nejdelší společnou příponu s wordsQuery[i]. Pokud jsou ve wordsContainer dva nebo více řetězců, které sdílejí nejdelší společnou příponu, najděte řetězec, který má nejmenší délku. Pokud existují dva nebo více takových řetězců, které mají stejnou nejmenší délku, najděte ten, který se vyskytl dříve, ve wordsContainer.
Vrátí pole celých čísel ans, kde ans[i] je index řetězce ve wordsContainer, který má nejdelší společnou příponu s wordsQuery[i].

Příklad 1:

Vstup: wordsContainer = ["abcd","bcd","xbcd"], wordsQuery = ["cd","bcd","xyz"]
Výstup: [1,1,1]
Vysvětlení:
Podívejme se na každé wordQuery[i] zvlášť:

Pro wordsQuery[0] = "cd" jsou řetězce ze wordsContainer, které sdílejí nejdelší společnou příponu "cd" na indexech 0, 1 a 2. Mezi nimi je řetězec na indexu 1, protože má nejkratší délku 3.
Pro wordsQuery[1] = "bcd" jsou řetězce ze wordsContainer, které sdílejí nejdelší společnou příponu "bcd" na indexech 0, 1 a 2. Mezi nimi je řetězec na indexu 1, protože má nejkratší délku 3.
Pro wordsQuery[2] = "xyz" neexistuje žádný řetězec z wordsContainer, který by sdílel společnou příponu. Nejdelší společná přípona je tedy "", která je sdílena s řetězci na indexu 0, 1 a 2. Mezi nimi je řetězec na indexu 1, protože má nejkratší délku 3.

Příklad 2:

Vstup: wordsContainer = ["abcdefgh","poiuygh","ghghgh"], wordsQuery = ["gh","acbfgh","acbfegh"]
Výstup: [2,0,2]
Vysvětlení:
Podívejme se na každé wordQuery[i] zvlášť:

Pro wordsQuery[0] = "gh" jsou řetězce ze wordsContainer, které sdílejí nejdelší společnou příponu "gh", na indexech 0, 1 a 2. Mezi nimi je odpovědí řetězec na indexu 2, protože má nejkratší délku 6.
Pro wordsQuery[1] = "acbfgh" pouze řetězec na indexu 0 sdílí nejdelší společnou příponu "fgh". Proto je to odpověď, i když je řetězec na indexu 2 kratší.
Pro wordsQuery[2] = "acbfegh" jsou řetězce z wordsContainer, které sdílejí nejdelší společnou příponu "gh", na indexech 0, 1 a 2. Mezi nimi je odpovědí řetězec na indexu 2, protože má nejkratší délku 6.

Omezení:

1 <= wordsContainer.length, wordsQuery.length <= 10^4
1 <= slovaKontejner[i].length <= 5 * 10^3
1 <= slovaDotaz[i].length <= 5 * 10^3
wordsContainer[i] se skládá pouze z malých anglických písmen.
wordsQuery[i] se skládá pouze z malých anglických písmen.
Součet slovContainer[i].length je maximálně 5 * 10^5.
Součet slovDotaz[i].length je maximálně 5 * 10^5.


Celé číslo dělitelné součtem svých číslic se nazývá Harshadovo číslo. Je vám dáno celé číslo \( x \). Vraťte součet číslic \( x \), pokud je \( x \) Harshadovo číslo, jinak vraťte hodnotu \(-1\).

Příklad 1:

Vstup: x = 18
Výstup: 9
Vysvětlení:
Součet číslic x je 9. 18 je dělitelné 9. Takže 18 je Harshadovo číslo a odpověď je 9.

Příklad 2:

Vstup: x = 23
Výstup: -1
Vysvětlení:
Součet číslic x je 5. 23 není dělitelné 5. Takže 23 není Harshadovo číslo a odpověď je -1.

Omezení:

1 <= x <= 100

Celé číslo dělitelné součtem svých číslic se nazývá Harshadovo číslo. Je dán celé číslo x. Vraťte součet číslic x, pokud je x Harshadovo číslo, jinak vraťte -1.

Příklad 1:

Vstup: x = 18
Výstup: 9
Vysvětlení:
Součet číslic x je 9. 18 je dělitelné 9. Takže 18 je Harshadovo číslo a odpověď je 9.

Příklad 2:

Vstup: x = 23
Výstup: -1
Vysvětlení:
Součet číslic x je 5. 23 není dělitelné 5. Takže 23 není Harshadovo číslo a odpověď je -1.

Omezení:

1 <= x <= 100

Celé číslo dělitelné součtem jeho číslic se nazývá Harshadovo číslo. Dostanete celé číslo x. Vrátí součet číslic x, pokud x je Harshadovo číslo, jinak vrátí -1.

Příklad 1:

Vstup: x = 18
Výstup: 9
Vysvětlení:
Součet číslic x je 9. 18 je dělitelné 9. Takže 18 je Harshadovo číslo a odpověď je 9.

Příklad 2:

Vstup: x = 23
Výstup: -1
Vysvětlení:
Součet číslic x je 5. 23 není dělitelné 5. Takže 23 není Harshadovo číslo a odpověď je -1.

Omezení:

1 <= x <= 100


Máte zadané binární pole nums.
Podpole nazýváme střídavým, pokud žádné dva sousední prvky v podpole nemají stejnou hodnotu.
Vraťte počet střídavých podpolí v nums.

Příklad 1:

Vstup: nums = [0,1,1,1]
Výstup: 5
Vysvětlení:
Následující podpole jsou střídavá: [0], [1], [1], [1], a [0,1].

Příklad 2:

Vstup: nums = [1,0,1,0]
Výstup: 10
Vysvětlení:
Každé podpole pole je střídavé. Existuje 10 možných podpolí, které můžeme vybrat.

Omezení:

1 <= nums.length <= 10^5
nums[i] je buď 0 nebo 1.

Je vám přiděleno binární pole nums.
Podpole voláme střídavě, pokud žádné dva sousední prvky v podpoli nemají stejnou hodnotu.
Vrátí počet střídajících se podpolí v číslech.

Příklad 1:

Vstup: nums = [0,1,1,1]
Výstup: 5
Vysvětlení:
Střídají se následující podpole: [0], [1], [1], [1] a [0,1].

Příklad 2:

Vstup: nums = [1,0,1,0]
Výstup: 10
Vysvětlení:
Každé podpole pole se střídá. Existuje 10 možných podpolí, které si můžeme vybrat.

Omezení:

1 <= nums.length <= 10^5
nums[i] je buď 0 nebo 1.

Dostanete binární pole nums.
Podpole nazýváme střídající se, pokud žádné dva sousední prvky v podpoli nemají stejnou hodnotu.
Vraťte počet střídajících se podpolí v číslech.

Příklad 1:

Vstup: nums = [0,1,1,1]
Výstup: 5
Vysvětlení:
Střídají se následující podpole: [0], [1], [1], [1] a [0,1].

Příklad 2:

Vstup: nums = [1,0,1,0]
Výstup: 10
Vysvětlení:
Každé podpole pole je střídavé. Existuje 10 možných podpolí, které si můžeme vybrat.

Omezení:

1 <= nums.length <= 10^5
nums[i] je buď 0 nebo 1.


Je vám dáno pole points představující celočíselné souřadnice některých bodů na 2D rovině, kde body [i] = [x_i, y_i]. Vzdálenost mezi dvěma body je definována jako jejich Manhattanská vzdálenost. Vraťte minimální možnou hodnotu pro maximální vzdálenost mezi libovolnými dvěma body po odstranění přesně jednoho bodu.

Příklad 1:

Vstup: body = [[3,10],[5,15],[10,2],[4,4]]
Výstup: 12
Vysvětlení:
Maximální vzdálenost po odstranění každého bodu je následující:

Po odstranění 0-tého bodu je maximální vzdálenost mezi body (5, 15) a (10, 2), což je |5 - 10| + |15 - 2| = 18.
Po odstranění 1-tého bodu je maximální vzdálenost mezi body (3, 10) a (10, 2), což je |3 - 10| + |10 - 2| = 15.
Po odstranění 2-tého bodu je maximální vzdálenost mezi body (5, 15) a (4, 4), což je |5 - 4| + |15 - 4| = 12.
Po odstranění 3-tého bodu je maximální vzdálenost mezi body (5, 15) a (10, 2), což je |5 - 10| + |15 - 2| = 18.

12 je minimální možná maximální vzdálenost mezi libovolnými dvěma body po odstranění právě jednoho bodu.

Příklad 2:

Vstup: body = [[1,1],[1,1],[1,1]]
Výstup: 0
Vysvětlení:
Odstranění jakéhokoliv bodu vede k maximální vzdálenosti mezi libovolnými dvěma body rovné 0.

Omezení:

3 <= points.length <= 10^5
points[i].length == 2
1 <= points[i][0], points[i][1] <= 10^8

Je zadáno pole points, které představuje celočíselné souřadnice některých bodů ve 2D rovině, kde points[i] = [x_i, y_i].
Vzdálenost mezi dvěma body je definována jako jejich manhattanská vzdálenost.
Vraťte minimální možnou hodnotu maximální vzdálenosti mezi libovolnými dvěma body tak, že odstraníte přesně jeden bod.

Příklad 1:

Vstup: points = [[3,10],[5,15],[10,2],[4,4]].
Výstup: 12
Vysvětlení:
Maximální vzdálenost po odstranění každého point je následující:

Po odstranění 0^tého bodu je maximální vzdálenost mezi body (5, 15) a (10, 2), což je |5 - 10| + |15 - 2| = 18.
Po odstranění 1^. bodu je maximální vzdálenost mezi body (3, 10) a (10, 2), což je |3 - 10| + |10 - 2| = 15.
Po odstranění druhého bodu je maximální vzdálenost mezi body (5, 15) a (4, 4), což je |5 - 4| + |15 - 4| = 12.
Po odstranění 3^. bodu je maximální vzdálenost mezi body (5, 15) a (10, 2), což je |5 - 10| + |15 - 2| = 18.

12 je minimální možná maximální vzdálenost mezi libovolnými dvěma body po odstranění přesně jednoho bodu.

Příklad 2:

Vstup: points = [[1,1],[1,1],[1,1]]
Výstup: 0
Vysvětlení:
Odstraněním kteréhokoli z points je maximální vzdálenost mezi libovolnými dvěma points 0.

Omezení:

3 <= points.length <= 10^5
points[i].length == 2
1 <= points[i][0], points[i][1] <= 10^8

Je dáno pole points představující celočíselné souřadnice některých bodů ve 2D rovině, kde points[i] = [x_i, y_i].
Vzdálenost mezi dvěma body je definována jako jejich manhattanská vzdálenost.
Vraťte minimální možnou hodnotu maximální vzdálenosti mezi libovolnými dvěma body tak, že odstraníte přesně jeden bod.

Příklad 1:

Vstup: body = [[3,10],[5,15],[10,2],[4,4]].
Výstup: 12
Vysvětlení:
Maximální vzdálenost po odstranění každého bodu je následující:

Po odstranění 0^tého bodu je maximální vzdálenost mezi body (5, 15) a (10, 2), což je |5 - 10| + |15 - 2| = 18.
Po odstranění 1^. bodu je maximální vzdálenost mezi body (3, 10) a (10, 2), což je |3 - 10| + |10 - 2| = 15.
Po odstranění druhého bodu je maximální vzdálenost mezi body (5, 15) a (4, 4), což je |5 - 4| + |15 - 4| = 12.
Po odstranění 3^. bodu je maximální vzdálenost mezi body (5, 15) a (10, 2), což je |5 - 10| + |15 - 2| = 18.

12 je minimální možná maximální vzdálenost mezi libovolnými dvěma body po odstranění přesně jednoho bodu.

Příklad 2:

Vstup: body = [[1,1],[1,1],[1,1]]
Výstup: 0
Vysvětlení:
Výsledkem odstranění libovolného z bodů je maximální vzdálenost mezi libovolnými dvěma body 0.

Omezení:

3 <= points.length <= 10^5
points[i].length == 2
1 <= points[i][0], points[i][1] <= 10^8


Dostanete pole celých čisel. Vrátí délku nejdelšího podpole čísel, která se buď striktně zvyšuje, nebo přísně snižuje.

Příklad 1:

Vstup: nums = [1,4,3,3,2]
Výstup: 2
Vysvětlení:
Striktně rostoucí podoblasti čísel jsou [1], [2], [3], [3], [4] a [1,4].
Striktně klesající podoblasti čísel jsou [1], [2], [3], [3], [4], [3,2] a [4,3].
Proto vracíme 2.

Příklad 2:

Vstup: nums = [3,3,3,3]
Výstup: 1
Vysvětlení:
Striktně rostoucí podoblasti čísel jsou [3], [3], [3] a [3].
Striktně klesající podoblasti čísel jsou [3], [3], [3] a [3].
Proto se vracíme 1.

Příklad 3:

Vstup: nums = [3,2,1]
Výstup: 3
Vysvětlení:
Striktně rostoucí podoblasti čísel jsou [3], [2] a [1].
Striktně klesající podoblasti čísel jsou [3], [2], [1], [3,2], [2,1] a [3,2,1].
Proto se vracíme 3.

Omezení:

1 <= nums.length <= 50
1 <= nums[i] <= 50

Je zadáno pole celých čísel nums. Vraťte délku nejdelšího Podpole pole nums, která je buď striktně rostoucí, nebo striktně klesající.

Příklad 1:

Vstup: nums = [1,4,3,3,2]
Výstup: 2
Vysvětlení:
Striktně rostoucí podmnožinami nums jsou [1], [2], [3], [3], [4] a [1,4].
Striktně klesající podpole nums jsou [1], [2], [3], [3], [4], [3,2] a [4,3].
Proto vracíme 2.

Příklad 2:

Vstup: nums = [3,3,3,3]
Výstup: 1
Vysvětlení:
Přesně rostoucími podmnožinami nums jsou [3], [3], [3] a [3].
Striktně klesající podpole nums jsou [3], [3], [3] a [3].
Proto vracíme 1.

Příklad 3:

Vstup: nums = [3,2,1]
Výstup: 3
Vysvětlení:
Přesně rostoucími podmnožinami nums jsou [3], [2] a [1].
Striktně klesajícími podmnožinami nums jsou [3], [2], [1], [3,2], [2,1] a [3,2,1].
Proto vracíme 3.

Omezení:

1 <= nums.length <= 50
1 <= nums[i] <= 50

Dostanete pole celých čísel. Vrátí délku nejdelšího podpole čísel, která se buď striktně zvyšuje, nebo přísně snižuje.

Příklad 1:

Vstup: nums = [1,4,3,3,2]
Výstup: 2
Vysvětlení:
Striktně rostoucí Podpole čísel jsou [1], [2], [3], [3], [4] a [1,4].
Striktně klesající Podpole čísel jsou [1], [2], [3], [3], [4], [3,2] a [4,3].
Proto vrátíme 2.

Příklad 2:

Vstup: nums = [3,3,3,3]
Výstup: 1
Vysvětlení:
Striktně rostoucí Podpole čísel jsou [3], [3], [3] a [3].
Striktně klesající Podpole čísel jsou [3], [3], [3] a [3].
Proto se vracíme 1.

Příklad 3:

Vstup: nums = [3,2,1]
Výstup: 3
Vysvětlení:
Striktně rostoucí Podpole čísel jsou [3], [2] a [1].
Striktně klesající Podpole čísel jsou [3], [2], [1], [3,2], [2,1] a [3,2,1].
Proto se vracíme 3.

Omezení:

1 <= nums.length <= 50
1 <= nums[i] <= 50


Máte zadán řetězec s a celé číslo k.
Definujte funkci distance(s_1, s_2) mezi dvěma řetězci s_1 a s_2 stejné délky n jako:

Součet minimální vzdálenosti mezi s_1[i] a s_2[i], pokud jsou znaky od 'a' do 'z' uspořádány cyklicky, pro všechna i v rozsahu [0, n - 1].

Například, distance("ab", "cd") == 4, a distance("a", "z") == 1.
Můžete změnit jakékoliv písmeno z s na jakékoliv jiné malé písmeno anglické abecedy, libovolně krát.
Vrátit řetězec, který označuje lexikograficky nejmenší řetězec t, kterého můžete dosáhnout po některých změnách, tak aby distance(s, t) <= k.

Příklad 1:

Vstup: s = "zbbz", k = 3
Výstup: "aaaz"
Vysvětlení:
Změňte s na "aaaz". Vzdálenost mezi "zbbz" a "aaaz" je rovna k = 3.

Příklad 2:

Vstup: s = "xaxcd", k = 4
Výstup: "aawcd"
Vysvětlení:
Vzdálenost mezi "xaxcd" a "aawcd" je rovna k = 4.

Příklad 3:

Vstup: s = "lol", k = 0
Výstup: "lol"
Vysvětlení:
Není možné změnit žádný znak, protože k = 0.

Omezení:

1 <= s.length <= 100
0 <= k <= 2000
s se skládá pouze z malých anglických písmen.

Dostanete řetězec s a celé číslo k.
Definujte vzdálenost funkce (s_1, s_2) mezi dvěma řetězci s_1 a s_2 o stejné délce n jako:

Součet minimální vzdálenosti mezi s_1[i] a s_2[i], když jsou znaky od 'a' do 'z' umístěny v cyklickém pořadí, pro všechna i v rozsahu [0, n - 1].

Například distance("ab", "cd") == 4 a distance("a", "z") == 1.
Jakékoli písmeno s můžete změnit na jakékoli jiné malé anglické písmeno, kolikrát.
Vraťte řetězec označující lexikograficky nejmenší řetězec t, který můžete získat po některých změnách, například vzdálenost(s, t) <= k.

Příklad 1:

Vstup: s = "zbbz", k = 3
Výstup: "aaaz"
Vysvětlení:
Změňte s na "aaaz". Vzdálenost mezi "zbbz" a "aaaz" je rovna k = 3.

Příklad 2:

Vstup: s = "xaxcd", k = 4
Výstup: "aawcd"
Vysvětlení:
Vzdálenost mezi „xaxcd“ a „aawcd“ je rovna k = 4.

Příklad 3:

Vstup: s = "lol", k = 0
Výstup: "lol"
Vysvětlení:
Je nemožné změnit jakýkoli znak jako k = 0.

Omezení:

1 <=s.length <= 100
0 <= k <= 2000
s se skládá pouze z malých anglických písmen.

Je vám dáno řetězec `s` a celé číslo `k`.
Definujte funkci `distance(s_1, s_2)` mezi dvěma řetězci `s_1` a `s_2` stejné délky `n` jako:

Součet minimální vzdálenosti mezi `s_1[i]` a `s_2[i]`, když jsou znaky od 'a' do 'z' uspořádány v cyklickém pořadí, pro všechna `i` v rozsahu [0, n - 1].

Například, `distance("ab", "cd") == 4`, a `distance("a", "z") == 1`.
Můžete změnit jakýkoli znak v `s` na jakýkoli jiný malý anglický znak, libovolný počet krát.
Vraťte řetězec, který označuje lexikograficky nejmenší řetězec `t`, který můžete získat po některých změnách, tak, že `distance(s, t) <= k`.

Příklad 1:

Vstup: s = "zbbz", k = 3
Výstup: "aaaz"
Vysvětlení:
Změňte s na "aaaz". Vzdálenost mezi "zbbz" a "aaaz" je rovna k = 3.

Příklad 2:

Vstup: s = "xaxcd", k = 4
Výstup: "aawcd"
Vysvětlení:
Vzdálenost mezi "xaxcd" a "aawcd" je rovna k = 4.

Příklad 3:

Vstup: s = "lol", k = 0
Výstup: "lol"
Vysvětlení:
Není možné změnit žádný znak, protože k = 0.

Omezení:

1 <= s.length <= 100
0 <= k <= 2000
s se skládá pouze z malých anglických písmen.


Máte dáno celočíselné pole nums a nezáporné celé číslo k. V jedné operaci můžete zvýšit nebo snížit libovolný prvek o 1.
Vraťte minimální počet operací potřebných k tomu, aby medián nums byl roven k.
Medián pole je definován jako prostřední prvek pole, když je seřazeno v neklesajícím pořadí. Pokud existují dvě možnosti pro medián, vezme se větší z obou hodnot.

Příklad 1:

Vstup: nums = [2,5,6,8,5], k = 4
Výstup: 2
Vysvětlení:
Můžeme odečíst jednu jednotku z nums[1] a nums[4] a získat [2, 4, 6, 8, 4]. Medián výsledného pole je roven k.

Příklad 2:

Vstup: nums = [2,5,6,8,5], k = 7
Výstup: 3
Vysvětlení:
Můžeme dvakrát přičíst jednu jednotku k nums[1] a jednou k nums[2], abychom získali [2, 7, 7, 8, 5].

Příklad 3:

Vstup: nums = [1,2,3,4,5,6], k = 4
Výstup: 0
Vysvětlení:
Medián pole je již roven k.

Omezení:

1 <= nums.length <= 2 * 10^5
1 <= nums[i] <= 10^9
1 <= k <= 10^9

Je vám dáno celé číslo pole nums a nezáporné celé číslo k. V jedné operaci můžete zvětšit nebo zmenšit libovolný prvek o 1.
Vrátí minimální počet operací potřebných k tomu, aby se medián čísel rovnal k.
Medián pole je definován jako prostřední prvek pole, pokud je seřazeno v jiném než sestupném pořadí. Pokud existují dvě možnosti mediánu, použije se větší z těchto dvou hodnot.

Příklad 1:

Vstup: nums = [2,5,6,8,5], k = 4
Výstup: 2
Vysvětlení:
Můžeme odečíst jedničku od nums[1] a nums[4] a dostaneme [2, 4, 6, 8, 4]. Medián výsledného pole je roven k.

Příklad 2:

Vstup: nums = [2,5,6,8,5], k = 7
Výstup: 3
Vysvětlení:
Můžeme přidat 1 k nums[1] dvakrát a 1 k nums[2] jednou, abychom získali [2, 7, 7, 8, 5].

Příklad 3:

Vstup: nums = [1,2,3,4,5,6], k = 4
Výstup: 0
Vysvětlení:
Medián pole je již roven k.

Omezení:

1 <= nums.length <= 2 * 10^5
1 <= nums[i] <= 10^9
1 <= k <= 10^9

Dostanete celočíselné pole nums a nezáporné celé číslo k. V jedné operaci můžete zvýšit nebo snížit libovolný prvek o 1.
Vraťte minimální počet operací potřebných k tomu, aby se medián čísel rovnal k.
Medián pole je definován jako střední prvek pole, když je seřazeno v neklesajícím pořadí. Pokud existují dvě možnosti pro medián, použije se větší z těchto dvou hodnot.

Příklad 1:

Vstup: nums = [2,5,6,8,5], k = 4
Výstup: 2
Vysvětlení:
Můžeme odečíst jedničku od nums[1] a nums[4] a dostaneme [2, 4, 6, 8, 4]. Medián výsledného pole je roven k.

Příklad 2:

Vstup: nums = [2,5,6,8,5], k = 7
Výstup: 3
Vysvětlení:
Můžeme přidat jedničku k nums[1] dvakrát a přidat jedničku k nums[2] jednou, abychom dostali [2, 7, 7, 8, 5].

Příklad 3:

Vstup: nums = [1,2,3,4,5,6], k = 4
Výstup: 0
Vysvětlení:
Medián pole je již roven k.

Omezení:

1 <= nums.length <= 2 * 10^5
1 <= nums[i] <= 10^9
1 <= k <= 10^9


Je zadán řetězec s představující čas ve 12hodinovém formátu, kde jsou některé číslice (případně žádná) nahrazeny znakem „?“.
Dvanáctihodinové časy jsou formátovány jako „HH:MM“, kde HH je mezi 00 a 11 a MM je mezi 00 a 59. Nejstarší 12hodinový čas je 00:00 a nejpozdější 11:59.
Je třeba nahradit všechny znaky „?“ v s číslicemi tak, aby čas, který získáme výsledným řetězcem, byl platným časem 12hodinového formátu a byl nejpozdějším možným.
Vraťte výsledný řetězec.

Příklad 1:

Vstup: s = „1?:?4“
Výstup: „11:54“
Vysvětlení: Nejpozdější 12hodinový formát času, kterého můžeme dosáhnout nahrazením znaků „?“, je „11:54“.

Příklad 2:

Vstup: s = „0?:5?“
Výstup: „09:59“
Vysvětlení: Nejpozdější 12hodinový formát času, kterého můžeme dosáhnout nahrazením znaků „?“, je „09:59“.

Omezení:

s.length == 5
s[2] se rovná znaku „:“.
Všechny znaky kromě s[2] jsou číslice nebo znaky „?“.
Vstup je generován tak, aby mezi „00:00“ a „11:59“ existoval alespoň jeden čas, který lze získat po nahrazení znaků „?“.

Dostanete řetězec s představující 12hodinový formát, kde jsou některé číslice (možná žádné) nahrazeny znakem "?".
12hodinové časy jsou ve formátu "HH:MM", kde HH je mezi 00 a 11 a MM je mezi 00 a 59. nejdřívější je 00:00 a nejnovější je 11:59.
Musíte nahradit všechny "?" znaky v s s takovými číslicemi, že čas, který získáme výsledným řetězcem, je platným 12hodinovým formátovaným časem a je nejnovější možný.
Vraťte výsledný řetězec.

Příklad 1:

Vstup: s = "1?:?4"
Výstup: "11:54"
Vysvětlení: nejpozdější 12hodinový čas, kterého můžeme dosáhnout nahrazením "?" znaků je "11:54".

Příklad 2:

Vstup: s = "0?:5?"
Výstup: "09:59"
Vysvětlení: nejpozdější 12hodinový čas, kterého můžeme dosáhnout nahrazením "?" znaků je "09:59".

Omezení:

s.length == 5
s[2] se rovná znaku ":".
Všechny znaky kromě s[2] jsou číslice nebo "?" znaky.
Vstup je generován tak, že existuje alespoň jeden čas mezi "00:00" a "11:59", který můžete získat po nahrazení "?" znaky.

Máte daný řetězec s, který představuje čas ve 12hodinovém formátu, kde některé z číslic (možná žádná) jsou nahrazeny znakem "?".
Časy ve 12hodinovém formátu jsou psány jako "HH:MM", kde HH je mezi 00 a 11 a MM je mezi 00 a 59. Nejčasnější čas ve 12hodinovém formátu je 00:00 a nejpozdější je 11:59.
Musíte nahradit všechny znaky "?" v s číslicemi tak, aby čas, který získáme výsledným řetězcem, byl platným časem ve 12hodinovém formátu a byl co nejpozdější.
Vraťte výsledný řetězec.

Příklad 1:

Vstup: s = "1?:?4"
Výstup: "11:54"
Vysvětlení: Nejpozdější čas ve 12hodinovém formátu, kterého můžeme dosáhnout nahrazením znaků "?" je "11:54".

Příklad 2:

Vstup: s = "0?:5?"
Výstup: "09:59"
Vysvětlení: Nejpozdější čas ve 12hodinovém formátu, kterého můžeme dosáhnout nahrazením znaků "?" je "09:59".

Omezení:

délka s == 5
s[2] je roven znaku ":".
Všechny znaky kromě s[2] jsou číslice nebo znaky "?".
Vstup je generován tak, že existuje alespoň jeden čas mezi "00:00" a "11:59", který můžete získat po nahrazení znaků "?".


Je zadáno celočíselné pole nums.
Vraťte celé číslo, které je maximální vzdáleností mezi indexy dvou (ne nutně různých) prvočísel v poli nums.

Příklad 1:

Vstup: nums = [4,2,9,5,3]
Výstup: 3
Vysvětlení: nums[1], nums[3] a nums[4] jsou prvočísla. Odpověď je tedy |4 - 1| = 3.

Příklad 2:

Vstup: nums = [4,8,2,8]
Výstup: 0
Vysvětlení: nums[2] je prvočíslo. Protože existuje jen jedno prvočíslo, odpověď je |2 - 2| = 0.

Omezení:

1 <= nums.length <= 3 * 10^5
1 <= nums[i] <= 100
Vstup je generován tak, že počet prvočísel v nums je alespoň jedno.

Dostanete celočíselné pole nums.
Vraťte celé číslo, které je maximální vzdáleností mezi indexy dvou (ne nutně odlišných) prvočísel v číslech.

Příklad 1:

Vstup: nums = [4,2,9,5,3]
Výstup: 3
Vysvětlení: nums[1], nums[3] a nums[4] jsou prvočísla. Takže odpověď je |4 - 1| = 3.

Příklad 2:

Vstup: nums = [4,8,2,8]
Výstup: 0
Vysvětlení: nums[2] je prvočíslo. Protože existuje pouze jedno prvočíslo, odpověď je |2 - 2| = 0.

Omezení:

1 <= nums.length <= 3 * 10^5
1 <= nums[i] <= 100
Vstup je generován tak, že počet prvočísel v nums je alespoň jedna.