Existují tři karty s písmeny $\texttt{a}$, $\texttt{b}$, $\texttt{c}$, které jsou umístěny v řadě v nějakém pořadí. Můžete provést následující operaci nejvýše jednou:

- Vyberte dvě karty a prohoďte je. Je možné, aby se řada po této operaci stala $\texttt{abc}$? Vypište "YES", pokud je to možné, a "NO" jinak.

Vstup

První řádek obsahuje jedno celé číslo $t$ ($1 \leq t \leq 6$) — počet testovacích případů.

Jediný řádek každého testovacího případu obsahuje jeden řetězec, který se skládá z každého ze tří znaků $\texttt{a}$, $\texttt{b}$ a $\texttt{c}$ přesně jednou, reprezentující karty.

Výstup

Pro každý testovací případ vypište "YES", pokud můžete vytvořit řadu $\texttt{abc}$ s nejvýše jednou operací, nebo "NO" jinak.

Můžete vypsat odpověď v libovolném psaní (například řetězce "yEs", "yes", "Yes" a "YES" budou uznány jako kladná odpověď).

Ukázkový vstup 1:
6

abc

acb

bac

bca

cab

cba

Ukázkový výstup 1:

YES
YES
YES
NO
NO
YES

Poznámka

V prvním testovacím případě není třeba provádět žádné operace, protože řada je již $\texttt{abc}$.

Ve druhém testovacím případě můžeme prohodit $\texttt{c}$ a $\texttt{b}$: $\texttt{acb} \to \texttt{abc}$.

Ve třetím testovacím případě můžeme prohodit $\texttt{b}$ a $\texttt{a}$: $\texttt{bac} \to \texttt{abc}$.

Ve čtvrtém testovacím případě není možné vytvořit $\texttt{abc}$ při použití nejvýše jedné operace.

Jsou zde tři karty s písmeny $\texttt{a}$, $\texttt{b}$, $\texttt{c}$ umístěné v řadě v určitém pořadí. Následující operaci můžete provést nejvýše jednou:

- Vyberte dvě karty a prohoďte je.  Je možné, aby po této operaci vznikla řada $\texttt{abc}$? Vypište „ANO“, pokud je to možné, a „NE“ v opačném případě.

Vstup

První řádek obsahuje jedno celé číslo $t$ ($1 \leq t \leq 6$) - počet testovacích případů.

Jediný řádek každého testovacího případu obsahuje jediný řetězec složený z každého ze tří znaků $\texttt{a}$, $\texttt{b}$ a $\texttt{c}$ přesně jednou, což představuje karty.

Výstup

Pro každý testovací případ vypište „ANO“, pokud můžete vytvořit řádek $\texttt{abc}$ nejvýše jednou operací, nebo „NE“ v opačném případě.

Odpověď můžete vypsat v libovolném případě (například řetězce „aNo“, „ano“, „Ano“ a „ANO“ budou rozpoznány jako kladná odpověď). 1. Ukázka vstupních dat:
6

abc

acb

bac

bca

cab

cba

Vzorový výstup 1:

YES
YES
YES
NO
NO
YES

Poznámka

V prvním testovacím případě nemusíme provádět žádné operace, protože řádek je již $\texttt{abc}$.

Ve druhém testovacím případě můžeme prohodit $\texttt{c}$ a $\texttt{b}$: $\texttt{acb}}. \na \texttt{abc}$.

Ve třetím testovacím případě můžeme prohodit $\texttt{b}$ a $\texttt{a}$: $\texttt{bac}}. \na \texttt{abc}$.

Ve čtvrtém testovacím případě nelze vytvořit $\texttt{abc}$ pomocí nejvýše jedné operace.

Jsou zde tři karty s písmeny $\texttt{a}$, $\texttt{b}$, $\texttt{c}$ umístěné v řadě v určitém pořadí. Následující operaci můžete provést nejvýše jednou:

- Vyberte dvě karty a prohoďte je.  Je možné, aby po této operaci vznikla řada $\texttt{abc}$? Vypište „YES“, pokud je to možné, a „NO“ v opačném případě.

Vstup

První řádek obsahuje jedno celé číslo $t$ ($1 \leq t \leq 6$) - počet testovacích případů.

Jediný řádek každého testovacího případu obsahuje jediný řetězec složený z každého ze tří znaků $\texttt{a}$, $\texttt{b}$ a $\texttt{c}$ přesně jednou, což představuje karty.

Výstup

Pro každý testovací případ vypište „YES“, pokud můžete vytvořit řádek $\texttt{abc}$ nejvýše jednou operací, nebo „NO“ v opačném případě.

Odpověď můžete vypsat v libovolném případě (například řetězce „yEs“, „yes“, „Yes“ a „YES“ budou rozpoznány jako kladná odpověď). 1. Ukázka vstupních dat:
6

abc

acb

bac

bca

cab

cba

Vzorový výstup 1:

YES
YES
YES
NO
NO
YES

Poznámka

V prvním testovacím případě nemusíme provádět žádné operace, protože řádek je již $\texttt{abc}$.

Ve druhém testovacím případě můžeme prohodit $\texttt{c}$ a $\texttt{b}$: $\texttt{acb}}. \na \texttt{abc}$.

Ve třetím testovacím případě můžeme prohodit $\texttt{b}$ a $\texttt{a}$: $\texttt{bac}}. \na \texttt{abc}$.

Ve čtvrtém testovacím případě nelze vytvořit $\texttt{abc}$ pomocí nejvýše jedné operace.


Slavic chystá dárek pro kamaráda k narozeninám. Má pole $a$ o $n$ číslicích a dárek bude součinem všech těchto číslic. Protože je Slavic hodný kluk, který chce vytvořit co největší součin, chce k přesně jedné z číslic přičíst $1$.

Jaký je maximální součin, který může Slavic vytvořit?

Vstupní údaje

První řádek obsahuje jedno celé číslo $t$ ($1 \leq t \leq 10^4$) - počet testovacích případů.

První řádek každého testovacího případu obsahuje jedno celé číslo $n$ ($1 \leq n \leq 9$) - počet číslic.

Druhý řádek každého testovacího případu obsahuje $n$ celých čísel oddělených mezerou $a_i$ ($0 \leq a_i \leq 9$) - číslice v poli.

Výstup

Pro každý testovací případ vypište jedno celé číslo - maximální součin, který může Slavic vytvořit přičtením $1$ přesně k jedné ze svých číslic. 1. Vzorový vstup:
4

4

2 2 1 2

3

0 1 2

5

4 3 2 3 4

9

9 9 9 9 9 9 9 9 9

Vzorový výstup 1:

16
2
432
430467210

Slavík chystá dárek k narozeninám kamaráda. Má pole $a$ o $n$ číslicích a dárek bude součinem všech těchto číslic. Protože je Slavík hodný kluk, který chce vytvořit co největší součin, chce k přesně jedné z číslic přidat $1$.

Jaký je maximální součin, který může Slavík vytvořit?

Vstupní údaje

První řádek obsahuje jedno celé číslo $t$ ($1 \leq t \leq 10^4$) - počet testovacích případů.

První řádek každého testovacího případu obsahuje jedno celé číslo $n$ ($1 \leq n \leq 9$) - počet číslic.

Druhý řádek každého testovacího případu obsahuje $n$ celých čísel oddělených mezerou $a_i$ ($0 \leq a_i \leq 9$) - číslice v poli.

Výstup

Pro každý testovací případ vypište jedno celé číslo - maximální součin, který může Slovan vytvořit, když k jedné ze svých číslic přičte přesně $1$.Ukázkový vstup 1:
4

4

2 2 1 2

3

0 1 2

5

4 3 2 3 4

9

9 9 9 9 9 9 9 9 9

Ukázka výstupu 1:

16
2
432
430467210

Slavík připravuje dárek k narozeninám pro přítele. Má pole $a$ o $n$ číslicích a dárek bude tvořen součinem všech těchto číslic. Protože Slavík chce vytvořit co největší produkt, chce přidat $1$ přesně k jedné z jeho číslic.

Jaký je maximální produkt, který Slavík může vytvořit?

Vstup

První řádek obsahuje jedno celé číslo $t$ ($1 \leq t \leq 10^4$) — počet testovacích případů.

První řádek každého testovacího případu obsahuje jedno celé číslo $n$ ($1 \leq n \leq 9$) — počet číslic.

Druhý řádek každého testovacího případu obsahuje $n$ mezerami oddělená celá čísla $a_i$ ($0 \leq a_i \leq 9$) — číslice v poli.

Výstup

Pro každý testovací případ vypište jedno celé číslo — maximální produkt, který Slavík může vytvořit přidáním $1$ k přesně jedné z jeho číslic.

Ukázkový vstup 1:
4

4

2 2 1 2

3

0 1 2

5

4 3 2 3 4

9

9 9 9 9 9 9 9 9 9

Ukázkový výstup 1:

16
2
432
430467210


Je vám dána páska papíru $s$, která je dlouhá $n$ políček. Každé políčko je buď černé, nebo bílé. V jedné operaci můžete vzít libovolná $k$ po sobě jdoucí políčka a všechny je změnit na bílé.

Najděte minimální počet operací potřebných k odstranění všech černých políček.

Vstup

První řádek obsahuje jedno celé číslo $t$ ($1 \leq t \leq 1000$) — počet testovacích případů.

První řádek každého testovacího případu obsahuje dvě celá čísla $n$ a $k$ ($1 \leq k \leq n \leq 2 \cdot 10^5$) — délka papíru a číslo použité v operaci.

Druhý řádek každého testovacího případu obsahuje řetězec $s$ délky $n$ skládající se ze znaků $\texttt{B}$ (reprezentující černé políčko) nebo $\texttt{W}$ (reprezentující bílé políčko).

Součet $n$ přes všechny testovací případy nepřesáhne $2 \cdot 10^5$.

Výstup

Pro každý testovací případ vypište jedno celé číslo — minimální počet operací potřebných k odstranění všech černých políček.

Ukázkový vstup 1:

8

6 3

WBWWWB

7 3

WWBWBWW

5 4

BWBWB

5 5

BBBBB

8 2

BWBWBBBB

10 2

WBBWBBWBBW

4 1

BBBB

3 2

WWW

Ukázkový výstup 1:

2
1
2
1
4
3
4
0

Poznámka

V prvním testovacím případě můžete provést následující operace: $$\color{red}{\texttt{WBW}}\texttt{WWB} \to \texttt{WWW}\color{red}{\texttt{WWB}} \to \texttt{WWWWWW}$$

Ve druhém testovacím případě můžete provést následující operace: $$\texttt{WW}\color{red}{\texttt{BWB}}\texttt{WW} \to \texttt{WWWWWWW}$$

Ve třetím testovacím případě můžete provést následující operace: $$\texttt{B}\color{red}{\texttt{WBWB}} \to \color{red}{\texttt{BWWW}}\texttt{W} \to \texttt{WWWWW}$$

Dostanete proužek papíru $s$ dlouhý $n$ políček. Každé políčko je buď černé, nebo bílé. Při jedné operaci můžete vzít libovolných $k$ po sobě jdoucích políček a udělat je všechny bílé.

Najděte minimální počet operací potřebných k odstranění všech černých buněk.

Vstup

První řádek obsahuje jedno celé číslo $t$ ($1 \leq t \leq 1000$) - počet testovacích případů.

První řádek každého testovacího případu obsahuje dvě celá čísla $n$ a $k$ ($1 \leq k \leq n \leq 2 \cdot 10^5$) - délku papíru a celé číslo použité při operaci.

Druhý řádek každého testovacího případu obsahuje řetězec $s$ délky $n$ složený ze znaků $\texttt{B}$ (představující černou buňku) nebo $\texttt{W}$ (představující bílou buňku).

Součet $n$ ve všech testovacích případech nepřesáhne $2 \cdot 10^5$.

Výstup

Pro každý testovací případ vypište jedno celé číslo - minimální počet operací potřebných k odstranění všech černých buněk.Vzorový vstup 1:
8

6 3

WBWWWB

7 3

WWBWBWWW

5 4

BWBWB

5 5

BBBBB

8 2

BWBWBBBB

10 2

WBBWBBWBBW

4 1

BBBB

3 2

WWW

Ukázka výstupu 1:

2
1
2
1
4
3
4
0

Poznámka

V prvním testovacím případě můžete provést následující operace: $$\color{red}{\texttt{WBW}}\texttt{WWB} \to \texttt{WWW}\color{red}{\texttt{WWB}} \do \texttt{WWWWW}$$

Ve druhém testovacím případě můžete provést následující operace: $$\texttt{WW}\color{red}{\texttt{BWB}}\texttt{WW}$. \do \texttt{WWWWWW}$$

Ve třetím testovacím případě můžete provést následující operace: $$\texttt{B}\color{red}{\texttt{WBWB}} \to \color{red}{\texttt{BWWW}}\texttt{W} \to \texttt{WWWWW}$$

Dostanete proužek papíru $s$ o délce $n$ buněk. Každá buňka je buď černá nebo bílá. V operaci můžete vzít libovolné $k$ po sobě jdoucích buněk a udělat je všechny bílé.

Najděte minimální počet operací potřebných k odstranění všech černých buněk.

Vstup

První řádek obsahuje jediné celé číslo $t$ ($1 \leq t \leq 1000$) — počet testovacích případů.

První řádek každého testovacího případu obsahuje dvě celá čísla $n$ a $k$ ($1 \leq k \leq n \leq 2 \cdot 10^5$) — délku papíru a celé číslo použité v operaci.

Druhý řádek každého testovacího případu obsahuje řetězec $s$ délky $n$ sestávající ze znaků $\texttt{B}$ (představující černou buňku) nebo $\texttt{W}$ (představující bílou buňku).

Součet $n$ za všechny testovací případy nepřesáhne $2 \cdot 10^5$.

Výstup

Pro každý testovací případ zadejte na výstup jediné celé číslo – minimální počet operací potřebných k odstranění všech černých buněk. Ukázkový vstup 1:
8

6 3

WBWWWB

7 3

WWWBWBWW

5 4

BWBWB

5 5

BBBBB

8 2

BWBWBBBB

10 2

WBBWBBWBBW

4 1

BBBB

3 2

WWW

Ukázkový výstup 1:

2
1
2
1
4
3
4
0

Poznámka

V prvním testovacím případě můžete provést následující operace: $$\color{red}{\texttt{WBW}}\texttt{WWB} \to \texttt{WWW}\color{red}{\texttt{WWB}} \to \texttt{WWWWWW}$$

Ve druhém testovacím případě můžete provést následující operace: $$\texttt{WW}\color{red}{\texttt{BWB}}\texttt{WW} \to \texttt{WWWWWWW}$$

Ve třetím testovacím případě můžete provést následující operace: $$\texttt{B}\color{red}{\texttt{WBWB}} \to \color{red}{\texttt{BWWW}}\texttt{W} \to \texttt{WWWW}$$


Je dán řetězec $s$ délky $n$, složený z malých písmen latinské abecedy, a celé číslo $k$.

Je potřeba zkontrolovat, zda je možné odstranit přesně $k$ znaků z řetězce $s$ tak, aby zbývající znaky bylo možné přeuspořádat tak, aby tvořily palindrom. Poznamenejme, že zbývající znaky můžete libovolně přeuspořádat.

Palindrom je řetězec, který se čte stejně zleva doprava i zprava. Například řetězce "z", "aaa", "aba", "abccba" jsou palindromy, zatímco řetězce "codeforces", "reality", "ab" nejsou.

Vstup

Každý test se skládá z několika testovacích případů. První řádek obsahuje jedno celé číslo $t$ ($1 \leq t \leq 10^4$) — počet testovacích případů. Následuje jejich popis.

První řádek každého testovacího případu obsahuje dvě celá čísla $n$ a $k$ ($0 \leq k < n \leq 10^5$) — délku řetězce $s$ a počet znaků k odstranění.

Druhý řádek každého testovacího případu obsahuje řetězec $s$ délky $n$, složený z malých písmen latinské abecedy.

Je zaručeno, že součet $n$ přes všechny testovací případy nepřesáhne $2 \cdot 10^5$.

Výstup

Pro každý testovací případ vypište "YES", pokud je možné odstranit přesně $k$ znaků z řetězce $s$ tak, aby zbývající znaky bylo možné přeuspořádat na vytvoření palindromu, a "NO" v opačném případě.

Můžete odpovědět v libovolném případě (velká nebo malá písmena). Například řetězce "yEs", "yes", "Yes" a "YES" budou rozpoznány jako kladné odpovědi.

Ukázkový vstup 1:
14

1 0

a

2 0

ab

2 1

ba

3 1

abb

3 2

abc

6 2

bacacd

6 2

fagbza

6 2

zwaafa

7 2

taagaak

14 3

ttrraakkttoorr

5 3

debdb

5 4

ecadc

5 3

debca

5 3

abaac

Ukázkový výstup 1:

YES
NO
YES
YES
YES
YES
NO
NO
YES
YES
YES
YES
NO
YES

Poznámka

V prvním testovacím případě nelze nic odstranit a řetězec "a" je palindrom.

Ve druhém testovacím případě nelze nic odstranit, ale řetězce "ab" a "ba" nejsou palindromy.

Ve třetím testovacím případě, libovolný znak lze odstranit a výsledný řetězec bude palindrom.

Ve čtvrtém testovacím případě lze odstranit jedno písmeno "a", výsledkem bude řetězec "bb", který je palindrom.

V šestém testovacím případě, lze odstranit jedno písmeno "b" a "d", výsledkem bude řetězec "acac", který lze přeuspořádat na řetězec "acca".

V devátém testovacím případě lze odstranit jedno písmeno "t" a "k", výsledkem je řetězec "aagaa", který je palindrom.

Je vám zadán řetězec $s$ o délce $n$, který se skládá z malých písmen latinky a celého čísla $k$.

Je třeba ověřit, zda je možné z řetězce odstranit přesně $k$ znaků $s$ tak, aby bylo možné zbývající znaky přeskupit do podoby palindromu. Všimněte si, že můžete libovolně změnit pořadí zbývajících znaků.

Paladrom je řetězec, který se čte stejně dopředu i dozadu. Například řetězce "z", "aaa", "aba", "abccba" jsou palindromy, zatímco řetězce "codeforces", "reality", "ab" nikoliv.

Vstup

Každý test se skládá z několika testovacích případů. První řádek obsahuje jedno celé číslo $t$ ($1 \leq t \leq 10^4$) — počet testovacích případů. Následuje jejich popis.

První řádek každého testovacího případu obsahuje dvě celá čísla $n$ a $k$ ($0 \leq k < n \leq 10^5$) — délku řetězce $s$ a počet znaků, které mají být odstraněny.

Druhý řádek každého testovacího případu obsahuje řetězec $s$ o délce $n$, který se skládá z malých písmen latinky.

Je zaručeno, že součet $n$ ve všech testovacích případech nepřesáhne $2 \cdot 10^5$.

Výstup

Pro každý testovací případ vypište "YES", pokud je možné odstranit přesně $k$ znaků z řetězce $s$ takovým způsobem, že zbývající znaky mohou být přeskupeny do palindromu, a "NO" v opačném případě.

Odpověď můžete odeslat v libovolném případě (velkými nebo malými písmeny). Například řetězce "yEs", "yes", "Yes" a "YES" budou rozpoznány jako kladné odpovědi. Ukázkový vstup 1:
14

1 0

a

2 0

ab

2 1

ba

3 1

abb

3 2

abc

6 2

bacacd

6 2

fagbza

6 2

zwaafa

7 2

taagaak

14 3

ttrraakkttoorr

5 3

debdb

5 4

ecadc

5 3

debca

5 3

abaac

Ukázkový výstup 1:

YES
NO
YES
YES
YES
YES
NO
NO
YES
YES
YES
YES
NO
YES

Poznámka

V prvním testovacím případě nelze nic odstranit a řetězec "a" je palindrom.

Ve druhém testovacím případě nelze nic odstranit, ale řetězce "ab" a "ba" nejsou palindromy.

Ve třetím testovacím případě může být libovolný znak odstraněn a výsledný řetězec bude palindrom.

Ve čtvrtém testovacím případě může být jeden výskyt znaku "a" odstraněn, což má za následek řetězec "bb", což je palindrom.

V šestém testovacím případě lze odstranit jeden výskyt znaků "b" a "d", což vede k řetězci "acac", který lze přeskupit na řetězec "acca".

V devátém testovacím případě lze odstranit jeden výskyt znaků "t" a "k", což vede k řetězci "aagaa", což je palindrom.


Je vám dáno polem celých čísel $a_1, a_2, \ldots, a_n$ a číslem $k$ ($2 \leq k \leq 5$). V jedné operaci můžete provést následující:

- Vyberte index $1 \leq i \leq n$,
- Nastavte $a_i = a_i + 1$. Najděte minimální počet operací potřebných k tomu, aby byl součin všech čísel v poli $a_1 \cdot a_2 \cdot \ldots \cdot a_n$ dělitelný $k$.

Vstup

Každý test se skládá z několika testovacích případů. První řádek obsahuje jedno celé číslo $t$ ($1 \leq t \leq 10^4$) — počet testovacích případů. Dále následuje popis testovacích případů.

První řádek každého testovacího případu obsahuje dvě celá čísla $n$ a $k$ ($2 \leq n \leq 10^5$, $2 \leq k \leq 5$) — velikost pole $a$ a číslo $k$.

Druhý řádek každého testovacího případu obsahuje $n$ celých čísel $a_1, a_2, \ldots, a_n$ ($1 \leq a_i \leq 10$).

Je zaručeno, že součet $n$ ve všech testovacích případech nepřekročí $2 \cdot 10^5$.

Výstup

Pro každý testovací případ vypište minimální počet operací potřebných k tomu, aby byl součin všech čísel v poli dělitelný $k$.

Příklad vstupu 1:
15

2 5

7 3

3 3

7 4 1

5 2

9 7 7 3 9

5 5

5 4 1 2 3

7 4

9 5 1 5 9 5 1

3 4

6 3 6

3 4

6 1 5

3 4

1 5 9

4 4

1 4 1 1

3 4

3 5 3

4 5

8 9 9 3

2 5

1 6

2 5

10 10

4 5

1 6 1 1

2 5

7 7

Příklad výstupu 1:

2
2
1
0
2
0
1
2
0
1
1
4
0
4
3

Poznámka

V prvním testovacím případě musíme vybrat index $i = 2$ dvakrát. Poté bude pole $a = [7, 5]$. Součin všech čísel v poli je $35$.

Ve čtvrtém testovacím případě je součin čísel v poli $120$, což je již dělitelné $5$, takže žádné operace nejsou potřeba.

V osmém testovacím případě můžeme provést dvě operace výběrem $i = 2$ a $i = 3$ v libovolném pořadí. Poté bude pole $a = [1, 6, 10]$. Součin čísel v poli je $60$.

Dostanete pole celých čísel $a_1, a_2, \ldots, a_n$ a číslo $k$ ($2 \leq k \leq 5$). V jedné operaci můžete provést následující:

- Vyberte index $1 \leq i \leq n$,
- Nastavte $a_i = a_i + 1$. Najděte minimální počet operací potřebných k tomu, aby byl součin všech čísel v poli $a_1 \cdot a_2 \cdot \ldots \cdot a_n$ dělitelný $k$.

Vstup

Každý test se skládá z několika testovacích případů. První řádek obsahuje jediné celé číslo $t$ ($1 \leq t \leq 10^4$) — počet testovacích případů. Následuje popis testovacích případů.

První řádek každého testovacího případu obsahuje dvě celá čísla $n$ a $k$ ($2 \leq n \leq 10^5$, $2 \leq k \leq 5$) — velikost pole $a$ a číslo $ k $.

Druhý řádek každého testovacího případu obsahuje $n$ celá čísla $a_1, a_2, \ldots, a_n$ ($1 \leq a_i \leq 10$).

Je zaručeno, že součet $n$ za všechny testovací případy nepřekročí $2 \cdot 10^5$.

Výstup

Pro každý testovací případ zadejte minimální počet operací potřebných k tomu, aby byl součin všech čísel v poli dělitelný $k$. Ukázkový vstup 1:
15

2 5

7 3

3 3

7 4 1

5 2

9 7 7 3 9

5 5

5 4 1 2 3

7 4

9 5 1 5 9 5 1

3 4

6 3 6

3 4

6 1 5

3 4

1 5 9

4 4

1 4 1 1

3 4

3 5 3

45

8 9 9 3

2 5

16

2 5

10 10

45

1 6 1 1

2 5

7 7

Ukázkový výstup 1:

2
2
1
0
2
0
1
2
0
1
1
4
0
4
3

Poznámka

V prvním testovacím případě musíme dvakrát zvolit index $i = 2$. Poté bude pole $a = [7, 5]$. Součin všech čísel v poli je 35 $.

Ve čtvrtém testovacím případě je součin čísel v poli $120$, což je již dělitelné $5$, takže nejsou potřeba žádné operace.

V osmém testovacím případě můžeme provést dvě operace výběrem $i = 2$ a $i = 3$ v libovolném pořadí. Poté bude pole $a = [1, 6, 10]$. Součin čísel v poli je 60 $.

Je dáno pole celých čísel $a_1, a_2, \ldots, a_n$ a číslo $k$ ($2 \leq k \leq 5$). Jednou operací můžete provést následující:

- Zvolte index $1 \leq i \leq n$,
- Nastavte $a_i = a_i + 1$. Najděte minimální počet operací potřebných k tomu, aby součin všech čísel v poli $a_1 \cdot a_2 \cdot \ldots \cdot a_n$ byl dělitelný $k$.

Vstup

Každý test se skládá z několika testovacích případů. První řádek obsahuje jedno celé číslo $t$ ($1 \leq t \leq 10^4$) - počet testovacích případů. Poté následuje popis testovacích případů.

První řádek každého testovacího případu obsahuje dvě celá čísla $n$ a $k$ ($2 \leq n \leq 10^5$, $2 \leq k \leq 5$) - velikost pole $a$ a číslo $k$.

Druhý řádek každého testovacího případu obsahuje $n$ celých čísel $a_1, a_2, \ldots, a_n$ ($1 \leq a_i \leq 10$).

Je zaručeno, že součet $n$ ve všech testovacích případech nepřesáhne $2 \cdot 10^5$.

Výstup

Pro každý testovací případ zadejte minimální počet operací potřebných k tomu, aby byl součin všech čísel v poli dělitelný číslem $k$:
15

2 5

7 3

3 3

7 4 1

5 2

9 7 7 3 9

5 5

5 4 1 2 3

7 4

9 5 1 5 9 5 1

3 4

6 3 6

3 4

6 1 5

3 4

1 5 9

4 4

1 4 1 1

3 4

3 5 3

4 5

8 9 9 3

2 5

1 6

2 5

10 10

4 5

1 6 1 1

2 5

7 7

Ukázka výstupu 1:

2
2
1
0
2
0
1
2
0
1
1
4
0
4
3

Poznámka

V prvním testovacím případě musíme dvakrát zvolit index $i = 2$. Poté bude mít pole tvar $a = [7, 5]$. Součin všech čísel v poli je $35$.

Ve čtvrtém testovacím případě je součin čísel v poli $120$, což je již dělitelné $5$, takže není třeba provádět žádné operace.

V osmém testovacím případě můžeme provést dvě operace tak, že zvolíme $i = 2$ a $i = 3$ v libovolném pořadí. Poté bude pole mít tvar $a = [1, 6, 10]$. Součin čísel v poli je $60$.


Vanya a Vova hrají hru. Hráčům je dáno celé číslo $n$. Ve svém tahu může hráč k aktuálnímu celému číslu přičíst $1$ nebo odečíst $1$. Hráči se střídají; Vanya začíná. Pokud je po Vanyově tahu celé číslo dělitelné $3$, vyhrává. Pokud uplynulo $10$ tahů a Vanya nevyhrál, pak vyhrává Vova.

Napište program, který na základě celého čísla $n$ určí, kdo vyhraje, budou-li oba hráči hrát optimálně.

Vstup

První řádek obsahuje celé číslo $t$ ($1 \leq t \leq 100$) - počet testovacích případů.

Jednotlivý řádek každého testovacího případu obsahuje celé číslo $n$ ($1 \leq n \leq 1000$).

Výstup

Pro každý testovací případ vypište "First" bez uvozovek, pokud vyhrál Vanya, a "Second" bez uvozovek, pokud vyhrál Vova. Vzorový vstup 1:
6

1

3

5

100

999

1000

Vzorový výstup 1:

First
Second
First
First
Second
First

Vanya a Vova hrají hru. Hráči mají celé číslo $n$. Ve svém tahu může hráč přičíst k aktuálnímu číslu $1$ nebo odečíst $1$. Hráči se střídají; Vanya začíná. Pokud po Vanyově tahu je celé číslo dělitelné $3$, vyhrává. Pokud po $10$ tazích Vanya nevyhrál, vyhrává Vova.

Napište program, který na základě celého čísla $n$ určí, kdo vyhraje, pokud oba hráči hrají optimálně.

Vstup

První řádek obsahuje celé číslo $t$ ($1 \leq t \leq 100$) — počet testovacích případů.

Jediný řádek každého testovacího případu obsahuje celé číslo $n$ ($1 \leq n \leq 1000$).

Výstup

Pro každý testovací případ vytiskněte "First" bez uvozovek, pokud vyhraje Vanya, a "Second" bez uvozovek, pokud vyhraje Vova.

Sample Input 1:
6

1

3

5

100

999

1000

Sample Output 1:

First
Second
First
First
Second
First

Váňa a Vova hrají hru. Hráčům je dáno celé číslo $n$. Ve svém tahu může hráč k aktuálnímu celému číslu přičíst $1$ nebo odečíst $1$. Hráči se střídají; začíná Váňa. Pokud je po Váňově tahu celé číslo dělitelné $3$, vyhrává. Pokud uplynulo $10$ tahů a Váňa nevyhrál, vyhrává Vova.

Napište program, který na základě celého čísla $n$ určí, kdo vyhraje, budou-li oba hráči hrát optimálně.

Vstup

První řádek obsahuje celé číslo $t$ ($1 \leq t \leq 100$) - počet testovacích případů.

Jednotlivý řádek každého testovacího případu obsahuje celé číslo $n$ ($1 \leq n \leq 1000$).

Výstup

Pro každý testovací případ vypište „First“ bez uvozovek, pokud vyhrál Váňa, a „Second“ bez uvozovek, pokud vyhrál Vova. ukázka Vstupní údaje 1:
6

1

3

5

100

999

1000

Ukázka výstupu 1:

First
Second
First
First
Second
First


Alex se účastní natáčení dalšího videa pro BrMeast a BrMeast požádal Alexe, aby připravil 250 tisíc tun TNT, ale Alex ho špatně slyšel, takže připravil $n$ krabic a uspořádal je do řady, aby čekaly na nákladní auta. $i$-tá krabice zleva váží $a_i$ tun.

Všechna nákladní auta, která Alex použije, pojmou stejný počet krabic, označený jako $k$. Nakládání probíhá následujícím způsobem:

- Prvních $k$ krabic jde do prvního nákladního auta,
- Druhých $k$ krabic jde do druhého nákladního auta,
- $\dotsb$
- Posledních $k$ krabic jde do $\frac{n}{k}$-tého nákladního auta. Po dokončení nakládky musí mít každé auto přesně $k$ krabic. Jinými slovy, pokud v nějakém okamžiku není možné naložit do auta přesně $k$ krabic, pak tato možnost nakládání s daným $k$ není možná.

Alex nenávidí spravedlnost, takže chce, aby maximální absolutní rozdíl mezi celkovými váhami dvou nákladních aut byl co největší. Pokud je jen jedno auto, je tato hodnota $0$.

Alex má dostatek kontaktů, takže pro každé $1 \leq k \leq n$ může najít společnost, jejíž nákladní auta pojmou přesně $k$ krabic. Vypište maximální absolutní rozdíl mezi celkovými váhami dvou nákladních aut.

Vstup

První řádek obsahuje jedno celé číslo $t$ ($1 \leq t \leq 10^4$) — počet testovacích případů.

První řádek každého testovacího případu obsahuje jedno celé číslo $n$ ($1 \leq n \leq 150\,000$) — počet krabic.

Druhý řádek obsahuje $n$ celých čísel $a_1, a_2, \dots, a_n$ ($1 \leq a_i \leq 10^9$) — váhy krabic.

Je zaručeno, že součet $n$ pro všechny testovací případy nepřesahuje $150\,000$.

Výstup

Pro každý testovací případ vypište jedno celé číslo — odpověď na problém.

Příklad vstupu 1:
5

2

1 2

6

10 2 3 6 1 3

4

1000000000 1000000000 1000000000 1000000000

15

60978 82265 78961 56708 39846 31071 4913 4769 29092 91348 64119 72421 98405 222 14294

8

19957 69913 37531 96991 57838 21008 14207 19198

Příklad výstupu 1:

1
9
0
189114
112141

Poznámka

V prvním případě bychom měli vybrat dvě auta, takže první bude mít pouze první krabici a druhé pouze druhou krabici.

Ve druhém případě bychom měli vybrat šest aut, takže maximum bude $10$, minimum bude $1$, a odpověď je $10 - 1 = 9$.

Ve třetím případě, pro jakékoli možné $k$, budou mít auta stejnou celkovou váhu krabic, takže odpověď je $0$.

Alex se účastní natáčení dalšího videa BrMeastu a BrMeast požádal Alexe, aby připravil 250 tisíc tun TNT, ale Alex ho špatně slyšel, a tak připravil $n$ krabic a srovnal je do řady čekající na náklaďáky. $i$-tá krabice zleva váží $a_i$ tun.

Všechna nákladní auta, která Alex použije, pojmou stejný počet krabic, označený $k$. Nakládání probíhá následujícím způsobem:

- Prvních $k$ krabic se naloží na první nákladní auto,
- Druhá krabice $k$ se naloží na druhý náklaďák,
- $\dotsb$
- Posledních $k$ krabic jde do $\frac{n}{k}$-tého nákladního auta. Po dokončení nakládky musí mít každý kamion přesně $k$ krabic. Jinými slovy, pokud v určitém okamžiku není možné naložit do kamionu přesně $k$ krabic, pak varianta nakládky s tímto $k$ není možná.

Alex nesnáší spravedlnost, proto chce, aby maximální absolutní rozdíl mezi celkovými hmotnostmi dvou nákladních automobilů byl co největší. Pokud je k dispozici pouze jeden kamion, je tato hodnota $0$.

Alex má poměrně hodně konexí, takže pro každý $1 \leq k \leq n$ může najít takovou firmu, že každý z jejích kamionů pojme přesně $k$ krabic. Vypište maximální absolutní rozdíl mezi celkovými hmotnostmi libovolných dvou kamionů.

Vstup

 První řádek obsahuje jedno celé číslo $t$ ($1 \leq t \leq 10^4$) - počet testovacích případů.

První řádek každého testovacího případu obsahuje jedno celé číslo $n$ ($1 \leq n \leq 150\,000$) - počet krabice.

Druhý řádek obsahuje $n$ celých čísel $a_1, a_2, \dots, a_n$ ($1 \leq a_i \leq 10^9$) - váhy krabice.

Je zaručeno, že součet $n$ pro všechny testovací případy nepřesáhne $150\000$.

Výstup

Pro každý testovací případ vypište jedno celé číslo - odpověď na úlohu. 1. Ukázkový vstup:
5

2

1 2

6

10 2 3 6 1 3

4

1000000000 1000000000 1000000000 1000000000

15

60978 82265 78961 56708 39846 31071 4913 4769 29092 91348 64119 72421 98405 222 14294

8

19957 69913 37531 96991 57838 21008 14207 19198

Ukázka výstupu 1:

1
9
0
189114
112141

Poznámka

V prvním případě bychom měli vybrat dva nákladní vozy, takže první bude mít pouze první pole a druhý pouze druhé pole.

Ve druhém případě bychom měli vybrat šest kamionů, takže maximum bude $10$, minimum $1$ a odpověď je $10 - 1 = 9$.

Ve třetím případě pro libovolné možné $k$ budou mít kamiony stejnou celkovou hmotnost krabic, takže odpověď je $0$.

Alex se účastní natáčení dalšího videa BrMeast a BrMeast požádal Alexe, aby připravil 250 tisíc tun TNT, ale Alex ho špatně slyšel, a tak připravil $n$ krabice a seřadil je do řady čekajících na kamiony. $i$-tý box zleva váží $a_i$ tun.

Všechny náklaďáky, které bude Alex používat, mají stejný počet krabic, označený $k$. Načítání probíhá následujícím způsobem:

- Prvních $k$ krabic jde do prvního náklaďáku,
- Druhá $k$ krabice jde do druhého náklaďáku,
- $\dotsb$
- Posledních $k$ krabic jde do $\frac{n}{k}$-tého náklaďáku. Po dokončení nakládky musí mít každý vůz přesně $k$ krabic. Jinými slovy, pokud v určitém okamžiku není možné naložit přesně $k$ krabic do kamionu, pak možnost naložení s těmito $k$ není možná.

Alex nenávidí spravedlnost, a tak chce, aby maximální absolutní rozdíl mezi celkovými hmotnostmi dvou kamionů byl co největší. Pokud existuje pouze jeden náklaďáky, tato hodnota je 0.

Alex má poměrně hodně spojení, takže za každý $1 \leq k \leq n$ může najít takovou společnost, že každý její náklaďák pojme přesně $k$ krabic. Vytiskněte maximální absolutní rozdíl mezi celkovými hmotnostmi libovolných dvou nákladních vozidel.

Vstup

První řádek obsahuje jedno celé číslo $t$ ($1 \leq t \leq 10^4$) — počet testovacích případů.

První řádek každého testovacího případu obsahuje jedno celé číslo $n$ ($1 \leq n \leq 150\000$) — počet krabice.

Druhý řádek obsahuje $n$ celá čísla $a_1, a_2, \dots, a_n$ ($1 \leq a_i \leq 10^9$) — váhy krabice.

Je zaručeno, že součet $n$ pro všechny testovací případy nepřekročí $150\000 $.

Výstup

Pro každý testovací případ vytiskněte jedno celé číslo – odpověď na problém. Ukázkový vstup 1:
5

2

1 2

6

10 2 3 6 1 3

4

1000000000 1000000000 1000000000 1000000000

15

60978 82265 78961 56708 39846 31071 4913 4769 29092 91348 64119 72421 98405 222 14294

8

19957 69913 37531 96991 57838 21008 14207 19198

Ukázkový výstup 1:

1
9
0
189114
112141

Poznámka

V prvním případě bychom měli vybrat dva nákladní vozy, takže první bude mít pouze první pole a druhý bude mít pouze druhý box.

V druhém případě bychom měli vybrat šest kamionů, takže maximum bude 10 $, minimum bude 1 $ a odpověď je 10 – 1 = 9 $.

Ve třetím případě pro všechny možné $k$ budou mít nákladní vozy stejnou celkovou hmotnost krabic, takže odpověď je $0$.


Podpole je souvislá část pole.

Yarik nedávno našel pole $a$ s $n$ prvky a začal se velmi zajímat o nalezení maximálního součtu neprázdného podpole. Yarik však nemá rád po sobě jdoucí celá čísla se stejnou paritou, takže podpole, kterou si vybere, musí mít pro sousední prvky střídavé parity.

Například $[1, 2, 3]$ je přijatelný, ale $[1, 2, 4]$ není, protože $2$ a $4$ jsou sudé i sousední.

Musíte Yarikovi pomoci nalezením maximálního součtu takového dílčího pole.

Vstup

První řádek obsahuje celé číslo $t$ $(1 \le t \le 10^4)$ — počet testovacích případů. Každý testovací případ je popsán následovně.

První řádek každého testovacího případu obsahuje celé číslo $n$ $(1 \le n \le 2 \cdot 10^5)$ — délka pole.

Druhý řádek každého testovacího případu obsahuje $n$ celá čísla $a_1, a_2, \dots, a_n$ $(-10^3 \le a_i \le 10^3)$ — prvky pole.

Je zaručeno, že součet $n$ pro všechny testovací případy nepřekročí $2 \cdot 10^5$.

Výstup

Pro každý testovací případ zadejte jedno celé číslo – odpověď na problém. Ukázkový vstup 1:
7

5

1 2 3 4 5

4

9 9 8 8

6

-1 4 -1 0 5 -4

4

-1 2 4 -3

1

-1000

3

101-99 101

20

-10 5 -8 10 6 -10 7 9 -2 -6 7 2 -4 6 -1 7 -6 -7 4 1

Ukázkový výstup 1:

15
17
8
4
-1000
101
10

Podřetězec je souvislá část pole.

Yarik nedávno našel pole $a$ s $n$ prvky a velmi se zajímal o nalezení maximálního součtu neprázdného podřetězce. Yarik však nemá rád po sobě jdoucí celé čísla se stejnou paritou, takže zvolený podřetězec musí mít střídající se parity pro sousední prvky.

Například $[1, 2, 3]$ je v pořádku, ale $[1, 2, 4]$ není, protože $2$ a $4$ jsou oba sudé a sousední.

Musíte Yarikovi pomoci najít maximální součet takového podřetězce.

Vstup

První řádek obsahuje celé číslo $t$ $(1 \le t \le 10^4)$ — počet testovacích případů. Každý testovací případ je popsán následovně.

První řádek každého testovacího případu obsahuje celé číslo $n$ $(1 \le n \le 2 \cdot 10^5)$ — délka pole.

Druhý řádek každého testovacího případu obsahuje $n$ celých čísel $a_1, a_2, \dots, a_n$ $(-10^3 \le a_i \le 10^3)$ — prvky pole.

Je zaručeno, že součet $n$ pro všechny testovací případy nepřesáhne $2 \cdot 10^5$.

Výstup

Pro každý testovací případ vypište jedno celé číslo — odpověď na problém.

Ukázkový vstup 1:
7

5

1 2 3 4 5

4

9 9 8 8

6

-1 4 -1 0 5 -4

4

-1 2 4 -3

1

-1000

3

101 -99 101

20

-10 5 -8 10 6 -10 7 9 -2 -6 7 2 -4 6 -1 7 -6 -7 4 1

Ukázkový výstup 1:

15
17
8
4
-1000
101
10

Dílčí pole je souvislá část pole.

Yarik nedávno našel pole $a$ o $n$ prvcích a velmi ho zajímalo, jak najít maximální součet neprázdného podřetězec. Yarik však nemá rád po sobě jdoucí celá čísla stejné parity, proto musí mít jím zvolené podřetězec střídavé parity sousedních prvků.

Například $[1, 2, 3]$ je přijatelné, ale $[1, 2, 4]$ nikoli, protože $2$ a $4$ jsou sudé a sousední.

Musíte pomoci Yarikovi tím, že najdete maximální součet takového podřetězce.

Vstup

První řádek obsahuje celé číslo $t$ $(1 \le t \le 10^4)$ - počet testovacích případů. Každý testovací případ je popsán následujícím způsobem.

První řádek každého testovacího případu obsahuje celé číslo $n$ $(1 \le n \le 2 \cdot 10^5)$ - délka pole.

Druhý řádek každého testovacího případu obsahuje $n$ celých čísel $a_1, a_2, \dots, a_n$ $(-10^3 \le a_i \le 10^3)$ - prvky pole.

Je zaručeno, že součet $n$ pro všechny testovací případy nepřesáhne $2 \cdot 10^5$.

Výstup

Pro každý testovací případ vypište jedno celé číslo - odpověď na úlohu. Ukázka vstupních údajů 1:
7

5

1 2 3 4 5

4

9 9 8 8

6

-1 4 -1 0 5 -4

4

-1 2 4 -3

1

-1000

3

101 -99 101

20

-10 5 -8 10 6 -10 7 9 -2 -6 7 2 -4 6 -1 7 -6 -7 4 1

Vzorový výstup 1:

15
17
8
4
-1000
101
10


Yarik je velkým fanouškem mnoha druhů hudby. Yarik však hudbu nejen rád poslouchá, ale také píše. Nejraději má elektronickou hudbu, a proto si vytvořil vlastní systém not, který je pro ni podle jeho názoru nejlepší.

Protože má Yarik rád také informatiku, jsou v jeho systému noty označeny celými čísly $2^k$, kde $k \ge 1$ - kladné celé číslo. Jak ale víte, k zápisu hudby nelze použít jen noty, takže Yarik používá kombinace dvou not. Kombinaci dvou not $(a, b)$, kde $a = 2^k$ a $b = 2^l$, označuje celým číslem $a^b$.

Například je-li $a = 8 = 2^3$, $b = 4 = 2^2$, pak kombinaci $(a, b)$ označíme celým číslem $a^b = 8^4 = 4096$. Všimněte si, že různé kombinace mohou mít stejný zápis, např. kombinace $(64, 2)$ je také označena celým číslem $4096 = 64^2$.

Yarik si již vybral $n$ not, které chce použít ve své nové melodii. Protože však jejich celá čísla mohou být velmi velká, zapsal je jako pole $a$ délky $n$, pak nota $i$ je $b_i = 2^{a_i}$. Celá čísla v poli $a$ se mohou opakovat.

Melodie se bude skládat z několika kombinací dvou not. Yarika zajímalo, kolik dvojic not $b_i, b_j$ $(i < j)$ existuje takových, že kombinace $(b_i, b_j)$ je rovna kombinaci $(b_j, b_i)$. Jinými slovy, chce spočítat počet dvojic $(i, j)$(i < j)$ takových, že $b_i^{b_j} = b_j^{b_i}$. Pomozte mu zjistit počet takových dvojic.

Vstup

První řádek vstupu obsahuje jedno celé číslo $t$ ($1 \le t \le 10^4$) - počet testovacích případů.

První řádek každého testovacího případu obsahuje jedno celé číslo $n$ ($1 \leq n \leq 2 \cdot 10^5$) - délku polí.

Další řádek obsahuje $n$ celých čísel $a_1, a_2, \dot, a_n$ ($1 \leq a_i \leq 10^9$) - pole $a$.

Je zaručeno, že součet $n$ ve všech testovacích případech nepřesáhne $2 \cdot 10^5$.

Výstup

Pro každý testovací případ vypište počet dvojic, které splňují danou podmínku. ukázka Vstupní údaje 1:
5

1

2

4

3 1 3 2

2

1000 1000

3

1 1 1

19

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

Vzorový výstup 1:

0
2
1
3
19

Yarik je velkým fanouškem mnoha druhů hudby. Ale Yarik miluje nejen poslouchání hudby, ale i její komponování. Nejvíce má rád elektronickou hudbu, a tak si vytvořil vlastní systém hudebních not, který je podle jeho názoru pro tento typ hudby nejlepší.

Protože má Yarik také rád informatiku, v jeho systému jsou noty označovány celými čísly $2^k$, kde $k \ge 1$ — kladné celé číslo. Ale jak víte, nelze používat pouze noty k psaní hudby, takže Yarik používá kombinace dvou not. Kombinaci dvou not $(a, b)$, kde $a = 2^k$ a $b = 2^l$, označuje celým číslem $a^b$.

Například pokud $a = 8 = 2^3$, $b = 4 = 2^2$, pak je kombinace $(a, b)$ označena celým číslem $a^b = 8^4 = 4096$. Všimněte si, že různé kombinace mohou mít stejné označení, např. kombinace $(64, 2)$ je také označena celým číslem $4096 = 64^2$.

Yarik již vybral $n$ not, které chce použít ve své nové melodii. Jelikož však jejich celá čísla mohou být velmi velká, zapsal je do pole $a$ o délce $n$, přičemž nota $i$ je $b_i = 2^{a_i}$. Celá čísla v poli $a$ se mohou opakovat.

Melodie bude sestávat z několika kombinací dvou not. Yarik přemýšlel, kolik párů not $b_i, b_j$ $(i < j)$ existuje takových, že kombinace $(b_i, b_j)$ je rovna kombinaci $(b_j, b_i)$. Jinými slovy, chce spočítat počet párů $(i, j)$ $(i < j)$ takových, že $b_i^{b_j} = b_j^{b_i}$. Pomozte mu najít počet takových párů.

Vstup

První řádek vstupu obsahuje jedno celé číslo $t$ ($1 \le t \le 10^4$) — počet testovacích případů.

První řádek každého testovacího případu obsahuje jedno celé číslo $n$ ($1 \leq n \leq 2 \cdot 10^5$) — délka polí.

Další řádek obsahuje $n$ celých čísel $a_1, a_2, \dots, a_n$ ($1 \leq a_i \leq 10^9$) — pole $a$.

Je zaručeno, že součet $n$ přes všechny testovací případy nepřesáhne $2 \cdot 10^5$.

Výstup

Pro každý testovací případ vypište počet párů, které splňují danou podmínku.

Ukázkový vstup 1:
5

1

2

4

3 1 3 2

2

1000 1000

3

1 1 1

19

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

Ukázkový výstup 1:

0
2
1
3
19

Yarik je velkým fanouškem mnoha druhů hudby. Ale Yarik miluje nejen poslech hudby, ale také její psaní. Ze všeho nejraději má elektronickou hudbu, a tak si vytvořil vlastní systém not, který je pro ni podle něj nejlepší.

Protože Yarik má také rád informatiku, v jeho systému jsou poznámky označovány celými čísly $2^k$, kde $k \ge 1$ — kladné celé číslo. Ale jak víte, nemůžete používat jen noty k psaní not, takže Yarik používá kombinace dvou not. Spojení dvou not $(a, b)$, kde $a = 2^k$ a $b = 2^l$, označuje celým číslem $a^b$.

Pokud je například $a = 8 = 2^3$, $b = 4 = 2^2$, pak se kombinace $(a, b)$ označuje celým číslem $a^b = 8^4 = 4096$. Všimněte si, že různé kombinace mohou mít stejný zápis, např. kombinace $(64, 2)$ se také označuje celým číslem $4096 = 64^2$.

Yarik si již vybral $n$ not, které chce použít ve své nové melodii. Protože však jejich celá čísla mohou být velmi velká, zapsal je jako pole $a$ délky $n$, pak poznámka $i$ je $b_i = 2^{a_i}$. Celá čísla v poli $a$ lze opakovat.

Melodie se bude skládat z několika kombinací po dvou tónech. Yarik přemýšlel, kolik párů not $b_i, b_j$ $(i < j)$ existuje takových, že kombinace $(b_i, b_j)$ se rovná kombinaci $(b_j, b_i)$. Jinými slovy, chce spočítat počet párů $(i, j)$ $(i < j)$ takový, že $b_i^{b_j} = b_j^{b_i}$. Pomozte mu zjistit počet takových dvojic.

Vstup

První řádek vstupu obsahuje jedno celé číslo $t$ ($1 \le t \le 10^4$) — počet testovacích případů.

První řádek každého testovacího případu obsahuje jedno celé číslo $n$ ($1 \leq n \leq 2 \cdot 10^5$) — délku polí.

Další řádek obsahuje $n$ celá čísla $a_1, a_2, \dots, a_n$ ($1 \leq a_i \leq 10^9$) — pole $a$.

Je zaručeno, že součet $n$ ve všech testovacích případech nepřesáhne $2 \cdot 10^5$.

Výstup

Pro každý testovací případ vypište počet párů, které splňují danou podmínku. Ukázkový vstup 1:
5

1

2

4

3 1 3 2

2

1000 1000

3

1 1 1

19

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

Ukázkový výstup 1:

0
2
1
3
19


Je dáno pole řetězců details s indexováním od nuly. Každý prvek details poskytuje informace o daném pasažérovi zkomprimovaného do řetězce délky 15. Systém je takový, že:

Prvních deset znaků tvoří telefonní číslo pasažérů.
Další znak označuje pohlaví pasažéra.
Následující dva znaky jsou použity k zápisu věku osoby.
Poslední dva znaky určují místo pro tuto osobu.

Vrať počet pasažérů, kteří jsou výhradně starší 60 let.

Příklad 1:

Vstup: details = ["7868190130M7522","5303914400F9211","9273338290F4010"]
Výstup: 2
Vysvětlení: Pasažéři s indexy 0, 1 a 2 mají věk 75, 92 a 40. Z čehož vychází, že jsou 2 lidé, kteří jsou starší 60 let.

Příklad 2:

Vstup: details = ["1313579440F2036","2921522980M5644"]
Výstup: 0
Vysvětlení: Žádný z pasažérů není starší 60 let.

Omezení:

1 <= details.length <= 100
details[i].length == 15
details[i] se skládá z číslic od '0' do '9'.
details[i][10] je buď 'M', nebo 'F', nebo 'O'.
Telefonní čísla a čísla míst pasažérů jsou odlišná.

Dostanete 0-indexované pole podrobností řetězců. Každý prvek podrobností poskytuje informace o daném cestujícím zkomprimované do řetězce délky 15. Systém je takový, že:

Prvních deset znaků tvoří telefonní číslo cestujících.
Další znak označuje pohlaví osoby.
Následující dva znaky se používají k označení věku osoby.
Poslední dva znaky určují místo přidělené této osobě.

Vraťte počet cestujících, kteří jsou přísně starší 60 let.

Příklad 1:

Vstup: podrobnosti = ["7868190130M7522","5303914400F9211","9273338290F4010"]
Výstup: 2
Vysvětlení: Cestující na indexech 0, 1 a 2 mají věk 75, 92 a 40 let. Jsou zde tedy 2 lidé starší 60 let.

Příklad 2:

Vstup: podrobnosti = ["1313579440F2036","2921522980M5644"]
Výstup: 0
Vysvětlení: Žádný z cestujících není starší 60 let.

Omezení:

1 <= detaily.length <= 100
detaily[i].length == 15
podrobnosti[i] sestávají z číslic od '0' do'9'.
podrobnosti[i][10] je buď 'M' nebo 'F' nebo 'O'.
Telefonní čísla a čísla sedadel cestujících jsou odlišná.

Je vám dáno pole řetězců details s indexováním od nuly. Každý prvek details poskytuje informace o daném pasažérovi zkomprimované do řetězce délky 15. Systém je takový, že:

Prvních deset znaků tvoří telefonní číslo pasažérů.
Další znak označuje pohlaví osoby.
Následující dva znaky jsou použity k určení věku osoby.
Poslední dva znaky určují místo určené pro tuto osobu.

Vraťte počet pasažérů, kteří jsou přísně starší než 60 let.

Příklad 1:

Vstup: details = ["7868190130M7522","5303914400F9211","9273338290F4010"]
Výstup: 2
Vysvětlení: Pasažéři s indexy 0, 1 a 2 mají věk 75, 92 a 40. Takže jsou 2 lidé, kteří jsou starší než 60 let.

Příklad 2:

Vstup: details = ["1313579440F2036","2921522980M5644"]
Výstup: 0
Vysvětlení: Žádný z pasažérů není starší než 60 let.

Omezení:

1 <= details.length <= 100
details[i].length == 15
details[i] se skládá z číslic od '0' do '9'.
details[i][10] je buď 'M', nebo 'F', nebo 'O'.
Telefonní čísla a čísla míst pasažérů jsou odlišná.


Je vám dána 0-indexovaná dvourozměrná celočíselná matice nums. Na začátku je váš skóre 0. Proveďte následující operace, dokud se matice nestane prázdnou:

Z každého řádku v matici vyberte největší číslo a odstraňte ho. V případě shody nezáleží na tom, které číslo je vybráno.
Určete nejvyšší číslo ze všech čísel odstraněných v prvním kroku. Přidejte toto číslo ke svému skóre.

Vrátí konečné skóre.

Příklad 1:

Vstup: nums = [[7,2,1],[6,4,2],[6,5,3],[3,2,1]]
Výstup: 15
Vysvětlení: Při první operaci odstraníme 7, 6, 6 a 3. Poté přidáme 7 k našemu skóre. Dále odstraníme 2, 4, 5 a 2. Přidáme 5 k našemu skóre. Nakonec odstraníme 1, 2, 3 a 1. Přidáme 3 ke svému skóre. Takže naše konečné skóre je 7 + 5 + 3 = 15.

Příklad 2:

Vstup: nums = [[1]]
Výstup: 1
Vysvětlení: Odstraníme 1 a přidáme ji k odpovědi. Vrátíme 1.

Omezení:

1 <= nums.length <= 300
1 <= nums[i].length <= 500
0 <= nums[i][j] <= 10^3

Je zadáno 2D celočíselné pole nums s indexem 0. Zpočátku je vaše skóre 0. Provádějte následující operace, dokud nebude matice prázdná:

Z každého řádku matice vyberte největší číslo a odstraňte ho. V případě rovnosti nezáleží na tom, které číslo vyberete.
Určete největší číslo ze všech čísel odstraněných v kroku 1. Toto číslo přičtěte ke svému skóre.

Vraťte výsledné skóre.

Příklad 1:

Vstup: nums = [[7,2,1],[6,4,2],[6,5,3],[3,2,1]].
Výstup: 15
Vysvětlení: V první operaci odstraníme čísla 7, 6, 6 a 3. Poté k našemu skóre přičteme 7. Dále odstraníme 2, 4, 5 a 2. Ke skóre přičteme 5. Nakonec odstraníme 1, 2, 3 a 1. K našemu skóre přičteme 3. Naše konečné skóre je tedy 7 + 5 + 3 = 15.

Příklad 2:

Vstup: nums = [[1]]
Výstup: 1
Vysvětlení: Výstup: Odstraníme 1 a přičteme ji k odpovědi. Vracíme 1.

Omezení:

1 <= nums.length <= 300
1 <= nums[i].length <= 500
0 <= nums[i][j] <= 10^3

Je zadáno 2D celočíselné pole nums s indexem 0. Zpočátku je vaše skóre 0. Provádějte následující operace, dokud nebude matice prázdná:

Z každého řádku matice vyberte největší číslo a odstraňte ho. V případě rovnosti nezáleží na tom, které číslo vyberete.
Určete největší číslo ze všech čísel odstraněných v kroku 1. Toto číslo přičtěte ke svému skóre.

Vraťte výsledné skóre.

Příklad 1:

Vstup: nums = [[7,2,1],[6,4,2],[6,5,3],[3,2,1]].
Výstup: 15
Vysvětlení: V první operaci odstraníme čísla 7, 6, 6 a 3. Poté k našemu skóre přičteme 7. Dále odstraníme 2, 4, 5 a 2. Ke skóre přičteme 5. Nakonec odstraníme 1, 2, 3 a 1. K našemu skóre přičteme 3. Naše konečné skóre je tedy 7 + 5 + 3 = 15.

Příklad 2:

Vstup: nums = [[1]]
Výstup: 1
Vysvětlení: Výstup: Odstraníme 1 a přičteme ji k odpovědi. Vrátíme 1.

Omezení:

1 <= nums.length <= 300
1 <= nums[i].length <= 500
0 <= nums[i][j] <= 10^3


Máte zadané celočíselné pole `nums` o délce \(n\) a celé číslo \(k\). V rámci operace můžete zvolit jeden prvek a vynásobit ho 2.
Vraťte maximální možnou hodnotu `nums[0] | nums[1] | ... | nums[n - 1]`, které lze dosáhnout po provedení operace na prvcích pole `nums` maximálně \(k\)-krát.
Poznámka: `a | b` označuje bitový operátor "nebo" mezi dvěma celými čísly.

Příklad 1:

Vstup: nums = [12,9], k = 1
Výstup: 30
Vysvětlení: Pokud aplikujeme operaci na index 1, náš nový array nums bude roven [12,18]. Vrátíme tedy bitový OR z 12 a 18, což je 30.

Příklad 2:

Vstup: nums = [8,1,2], k = 2
Výstup: 35
Vysvětlení: Pokud aplikujeme operaci dvakrát na index 0, získáme nové pole `[32,1,2]`. Proto vrátíme 32 | 1 | 2, což je 35.

Omezení:

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

Dostanete 0-indexované celé pole čísel délky n a celé číslo k. V operaci si můžete vybrat prvek a vynásobit ho 2.
vraťte maximální možnou hodnotu nums[0] | nums[1] | ... | nums[n - 1], které lze získat po aplikaci operace na nums nejvýše kkrát.
Všimněte si, že | b označuje bitové nebo mezi dvěma celými čísly a a b.

Příklad 1:

Vstup: nums = [12,9], k = 1
Výstup: 30
Vysvětlení: Pokud použijeme operaci na index 1, naše nová nums pole se budou rovnat [12,18]. Vrátíme tedy bitové nebo 12 a 18, což je 30.

Příklad 2:

Vstup: nums = [8,1,2], k = 2
Výstup: 35
Vysvětlení: Pokud použijeme operaci dvakrát na index 0, získáme nové pole [32,1,2]. Vrátíme tedy 32|1|2 = 35.

Omezení:

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

Je dáno pole celých čísel nums délky n s indexem 0 a celé číslo k. Při operaci můžete vybrat prvek a vynásobit jej dvěma.
Vraťte maximální možnou hodnotu nums[0] | nums[1] | ... | nums[n - 1], kterou lze získat po použití operace na nums nejvýše k-krát.
Všimněte si, že a | b označuje bitové nebo mezi dvěma celými čísly a a b.

Příklad 1:

Vstup: nums = [12,9], k = 1
Výstup: 30
Vysvětlení: Pokud použijeme operaci na index 1, bude naše nové pole nums rovno [12,18]. Vrátíme tedy bitové nebo 12 a 18, což je 30.

Příklad 2:

Vstup: nums = [8,1,2], k = 2
Výstup: 35
Vysvětlení: Pokud použijeme operaci dvakrát na index 0, získáme nové pole [32,1,2]. Vrátíme tedy 32|1|2 = 35.

Omezení:

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


Máte dané celočíselné pole `nums` indexované od nuly, které reprezentuje skóre studentů u zkoušky. Učitel chce vytvořit jednu neprázdnou skupinu studentů s maximální silou, přičemž síla skupiny studentů s indexy \(i_0, i_1, i_2, \ldots, i_k\) je definována jako \(nums[i_0] * nums[i_1] * nums[i_2] * \ldots * nums[i_k]\).
Vrátí maximální sílu skupiny, kterou může učitel vytvořit.

 Příklad 1:

Vstup: `nums = [3,-1,-5,2,5,-9]`
Výstup: `1350`
 Vysvětlení: Jedním ze způsobů, jak vytvořit skupinu s maximální silou, je zahrnout studenty s indexy `[0,2,3,4,5]`. Jejich síla je (3  (-5)  2  5  (-9) = 1350\), což je optimální řešení.

Příklad 2:

Vstup: nums = [-4,-5,-4]
Výstup: 20
Vysvětlení: Seskupte studenty na indexech [0, 1]. Potom budeme mít výslednou sílu 20. Nelze dosáhnout větší síly.

Omezení:

1 <= nums.length <= 13
-9 <= nums[i] <= 9

Dostanete nulové indexované celočíselné pole, které představuje skóre studentů ve zkoušce. Učitel by rád vytvořil jednu neprázdnou skupinu studentů s maximální silou, kde síla skupiny studentů indexů i_0, i_1, i_2, ... , i_k je definována jako nums[i_0] * nums[i_1] * nums[i_2] * ... * nums[i_k].
Vraťte maximální sílu skupiny, kterou může učitel vytvořit.

Příklad 1:

Vstup: nums = [3,-1,-5,2,5,-9]
Výkon: 1350
Vysvětlení: Jedním ze způsobů, jak vytvořit skupinu maximální síly, je seskupit studenty podle indexů [0,2,3,4,5]. Jejich síla je 3 * (-5) * 2 * 5 * (-9) = 1350, což můžeme ukázat jako optimální.

Příklad 2:

Vstup: nums = [-4,-5,-4]
Výstup: 20
Vysvětlení: Seskupte studenty podle indexů [0, 1] . Potom budeme mít výslednou sílu 20. Nemůžeme dosáhnout větší síly.

Omezení:

1 <= počet.length <= 13
-9 <= nums[i] <= 9

Máte dané celé číslo pole nums s 0-indexem, které představuje skóre studentů na zkoušce. Učitel by chtěl vytvořit jednu neprázdnou skupinu studentů s maximální silou, kde síla skupiny studentů s indexy i_0, i_1, i_2, ... , i_k je definována jako nums[i_0] * nums[i_1] * nums[i_2] * ... * nums[i_k].
Vraťte maximální sílu skupiny, kterou může učitel vytvořit.

Příklad 1:

Vstup: nums = [3,-1,-5,2,5,-9]
Výstup: 1350
Vysvětlení: Jeden způsob, jak vytvořit skupinu s maximální silou, je seskupit studenty na indexech [0,2,3,4,5]. Jejich síla je 3 * (-5) * 2 * 5 * (-9) = 1350, což je optimální.

Příklad 2:

Vstup: nums = [-4,-5,-4]
Výstup: 20
Vysvětlení: Seskupte studenty na indexech [0, 1]. Potom budeme mít výslednou sílu 20. Nelze dosáhnout větší síly.

Omezení:

1 <= nums.length <= 13
-9 <= nums[i] <= 9


Máte daný řetězec s indexovaný od nuly a slovník slov dictionary. Musíte rozdělit s na jeden nebo více nepřekrývajících se podřetězců tak, aby každý z nich byl přítomen ve slovníku. V řetězci s mohou být některé dodatečné znaky, které nejsou přítomny v žádném z podřetězců.
Vraťte minimální počet zbývajících dodatečných znaků, pokud řetězec s rozdělíte optimálně.

Příklad 1:

Vstup: s = "leetscode", dictionary = ["leet","code","leetcode"]
Výstup: 1
Vysvětlení: Můžeme rozdělit s na dva podřetězce: "leet" od indexu 0 do 3 a "code" od indexu 5 do 8. Pouze jeden nepoužitý znak (na indexu 4), takže vracíme 1.

Příklad 2:

Vstup: s = "sayhelloworld", dictionary = ["hello","world"]
Výstup: 3
Vysvětlení: Můžeme rozdělit s na dva podřetězce: "hello" od indexu 3 do 7 a "world" od indexu 8 do 12. Znaky na indexech 0, 1, 2 nejsou použity v žádném podřetězci a tedy jsou považovány za dodatečné znaky. Vracíme tedy 3.

Omezení:

1 <= s.length <= 50
1 <= dictionary.length <= 50
1 <= dictionary[i].length <= 50
dictionary[i] a s se skládají pouze z malých písmen anglické abecedy
dictionary obsahuje různá slova

Dostanete 0-indexovaný řetězec s a slovník slov. Musíte rozdělit s na jeden nebo více nepřekrývajících se podřetězců tak, aby každý podřetězec byl přítomen ve slovníku. V s mohou být nějaké další znaky, které nejsou přítomny v žádném z podřetězců.
Vraťte minimální počet zbývajících znaků, pokud s optimálně rozdělíte.

Příklad 1:

Vstup: s = "leetscode", slovník = ["leet","code","leetcode"]
Výstup: 1
Vysvětlení: S můžeme rozdělit na dva podřetězce: "leet" z indexu 0 na 3 a "code" z indexu 5 na 8. Existuje pouze 1 nepoužitý znak (na indexu 4), takže vrátíme 1.

Příklad 2:

Vstup: s = "sayhelloworld", slovník = ["hello","world"]
Výstup: 3
Vysvětlení: S můžeme rozdělit na dva podřetězce: "hello" od indexu 3 do 7 a "world" od indexu 8 do 12. Znaky na indexech 0, 1, 2 nejsou použity v žádném podřetězci, a proto jsou považovány za znaky navíc. Proto se vracíme 3.

Omezení:

1 <= délka s <= 50
1 <= délka slovníku <= 50
1 <= délka slovníku[i] <= 50
dictionary[i] a s sestává pouze z malých anglických písmen
slovník obsahuje odlišná slova

Dostanete řetězec s indexováním od 0 a slovník slov. Je nutné rozdělit s na jeden nebo více nepřekrývajících se podřetězců tak, aby každý podřetězec byl obsažen ve slovníku. V s mohou být některé další znaky, které se nenacházejí v žádném z podřetězců.
Vrátí minimální počet nepoužitých znaků, pokud s optimálně rozdělíte.

Příklad 1:

Vstup: s = "leetscode", dictionary = ["leet","code","leetcode"]
Výstup: 1
Vysvětlení: S můžeme rozdělit na dva podřetězce: "leet" z indexu 0 až 3 a "code" z indexu 5 až 8. Existuje pouze 1 nepoužitý znak (v indexu 4), takže vrátíme 1.

Příklad 2:

Vstup: s = "sayhelloworld", dictionary = ["hello","world"]
Výstup: 3
Vysvětlení: S můžeme rozdělit na dva podřetězce: "hello" z indexu 3 na 7 a "world" z indexu 8 na 12. Znaky v indexech 0, 1, 2 se nepoužívají v žádném podřetězci, a proto jsou považovány za znaky navíc. Vrátíme tedy 3.

Omezení:

1 <= s.length <= 50
1 <= dictionary.length <= 50
1 <= dictionary[i].length <= 50
dictionary[i] a s se skládá pouze z malých anglických písmen
slovník obsahuje odlišná slova


Dostanete celočíselné pole cen představující ceny různých čokolád v obchodě. Dostanete také jedno celé číslo, které představuje vaši počáteční částku peněz.
Musíte koupit přesně dvě čokolády tak, aby vám ještě zbyly nějaké nezáporné peníze. Rádi byste minimalizovali součet cen dvou kupovaných čokolád.
Vraťte částku, která vám zbyde po nákupu dvou čokolád. Pokud neexistuje způsob, jak si koupit dvě čokolády, aniž byste skončili v dluzích, vraťte peníze. Všimněte si, že zbytek musí být nezáporný.

Příklad 1:

Vstup: ceny = [1,2,2], peníze = 3
Výstup: 0
Vysvětlení: Kupte si čokoládu za 1 a 2 jednotky. Poté budete mít 3 - 3 = 0 jednotek peněz. Vrátíme tedy 0.

Příklad 2:

Vstup: ceny = [3,2,3], peníze = 3
Výstup: 3
Vysvětlení: Nemůžete koupit 2 čokolády, aniž byste se nezadlužili, takže vracíme 3.

Omezení:

2 <= ceny.length <= 50
1 <= ceny[i] <= 100
1 <= peníze <= 100

Dostanete celočíselné pole cen představující ceny různých čokolád v obchodě. Dostanete také jedno celé číslo, které představuje vaši počáteční částku peněz.
Musíte koupit přesně dvě čokolády tak, aby vám ještě zbyly nějaké nezáporné peníze. Rádi byste minimalizovali součet cen dvou kupovaných čokolád.
Vraťte částku, která vám zbyde po nákupu dvou čokolád. Pokud neexistuje způsob, jak si koupit dvě čokolády, aniž byste skončili v dluzích, vraťte peníze. Všimněte si, že zbytek musí být nezáporný.

Příklad 1:

Vstup: ceny = [1,2,2], peníze = 3
Výstup: 0
Vysvětlení: Kupte si čokoládu za 1 a 2 jednotky. Poté budete mít 3 - 3 = 0 jednotek peněz. Vrátíme tedy 0.

Příklad 2:

Vstup: ceny = [3,2,3], peníze = 3
Výstup: 3
Vysvětlení: Nemůžete koupit 2 čokolády, aniž byste se nezadlužili, takže vracíme 3.

Omezení:

2 <= prices.length <= 50
1 <= prices[i] <= 100
1 <= money <= 100

Je zadáno celočíselné pole ceny, které představuje ceny různých čokolád v obchodě. Dále je vám dáno jedno celé číslo money, které představuje počáteční částku peněz.
Musíte koupit přesně dvě čokolády tak, aby vám ještě zbyly nezáporné peníze. Chtěli byste minimalizovat součet cen obou čokolád, které koupíte.
Vraťte částku, která vám zbyde po nákupu obou čokolád. Pokud neexistuje způsob, jak koupit dvě čokolády, aniž byste skončili v dluzích, peníze vraťte. Všimněte si, že zbytek musí být nezáporný.

Příklad 1:

Vstup: ceny = [1,2,2], peníze = 3
Výstup: 0
Vysvětlení: Nakupte čokolády v cenách 1 a 2. Poté budete mít 3 - 3 = 0 jednotek peněz. Vrátíme tedy 0.

Příklad 2:

Vstup: ceny = [3,2,3], peníze = 3
Výstup: 3
Vysvětlení: Vrátíme tedy 3.

Omezení:

2 <= prices.length <= 50
1 <= prices[i] <= 100
1 <= peníze <= 100


Jsou zadány dva číselné řetězce num1 a num2 a dvě celá čísla max_sum a min_sum. Celé číslo x označíme jako dobré, pokud:

num1 <= x <= num2
min_sum <= digit_sum(x) <= max_sum.

Vrátíme počet dobrých celých čísel. Protože odpověď může být velká, vrátíme ji modulo 10^9 + 7.
Všimněte si, že digit_sum(x) označuje součet číslic x.

Příklad 1:

Vstup: num1 = "1", num2 ="12", min_sum = 1, max_sum = 8
Výstup: 11
Vysvětlení: Existuje 11 celých čísel, jejichž součet číslic leží mezi 1 a 8, a to 1,2,3,4,5,6,7,8,10,11 a 12. Vrátíme tedy 11.

Příklad 2:

Vstup: num1 ="1", num2 ="5", min_sum = 1, max_sum = 5
Výstup: 5
Vysvětlení: 5 celých čísel, jejichž součet číslic leží mezi 1 a 5, je 1,2,3,4 a 5. Vrátíme tedy 5.

Omezení:

1 <= num1 <= num2 <= 10^22
1 <= min_sum <= max_sum <= 400

Máte dvě číselné řetězce num1 a num2 a dvě celé čísla max_sum a min_sum. Celé číslo x označujeme jako dobré, pokud:

num1 <= x <= num2
min_sum <= digit_sum(x) <= max_sum.

Vraťte počet dobrých celých čísel. Jelikož odpověď může být velká, vraťte ji modulo 10^9 + 7.
Poznámka: digit_sum(x) označuje součet číslic x.

Příklad 1:

Vstup: num1 = "1", num2 = "12", min_sum = 1, max_sum = 8
Výstup: 11
Vysvětlení: Existuje 11 celých čísel, jejichž součet číslic je mezi 1 a 8, jedná se o 1,2,3,4,5,6,7,8,10,11 a 12. Tedy vrátíme 11.

Příklad 2:

Vstup: num1 = "1", num2 = "5", min_sum = 1, max_sum = 5
Výstup: 5
Vysvětlení: 5 celých čísel, jejichž součet číslic je mezi 1 a 5, jsou 1,2,3,4 a 5. Tedy vrátíme 5.

Omezení:

1 <= num1 <= num2 <= 10^22
1 <= min_sum <= max_sum <= 400

Jsou zadány dva číselné řetězce num1 a num2 a dvě celá čísla max_sum a min_sum. Celé číslo x označíme jako dobré, pokud:

num1 <= x <= num2
min_sum <= digit_sum(x) <= max_sum.

Vrátíme počet dobrých celých čísel. Protože odpověď může být velká, vrátíme ji modulo 10^9 + 7.
Všimněte si, že digit_sum(x) označuje součet číslic x.

Příklad 1:

Vstup: num1 = „1“, num2 = „12“, min_sum = 1, max_sum = 8
Výstup: 11
Vysvětlení: Existuje 11 celých čísel, jejichž součet číslic leží mezi 1 a 8, a to 1,2,3,4,5,6,7,8,10,11 a 12. Vrátíme tedy 11.

Příklad 2:

Vstup: num1 = „1“, num2 = „5“, min_sum = 1, max_sum = 5
Výstup: 5
Vysvětlení: 5 celých čísel, jejichž součet číslic leží mezi 1 a 5, je 1,2,3,4 a 5. Vrátíme tedy 5.

Omezení:

1 <= num1 <= num2 <= 10^22
1 <= min_sum <= max_sum <= 400


Je vám dáno 0-indexované pole nums délky n. Pole rozdílů odlišných prvků nums je pole diff délky n tak, že diff[i] se rovná počtu odlišných prvků v sufixu nums[i + 1, ..., n - 1] odečtenému od počtu odlišných prvků v prefixu nums[0, ..., i]. Vraťte pole rozdílů odlišných prvků nums. Všimněte si, že nums[i, ..., j] označuje podpole nums začínající na indexu i a končící na indexu j včetně. Zejména, pokud i > j, pak nums[i, ..., j] označuje prázdné podpole.

Příklad 1:

Input: nums = [1,2,3,4,5]
Output: [-3,-1,1,3,5]
Vysvětlení: Pro index i = 0 je v prefixu 1 prvek a v sufixu 4 odlišné prvky. Tedy diff[0] = 1 - 4 = -3.
Pro index i = 1 jsou v prefixu 2 odlišné prvky a v sufixu 3 odlišné prvky. Tedy diff[1] = 2 - 3 = -1.
Pro index i = 2 jsou v prefixu 3 odlišné prvky a v sufixu 2 odlišné prvky. Tedy diff[2] = 3 - 2 = 1.
Pro index i = 3 jsou v prefixu 4 odlišné prvky a v sufixu 1 odlišný prvek. Tedy diff[3] = 4 - 1 = 3.
Pro index i = 4 je v prefixu 5 odlišných prvků a v sufixu žádné prvky. Tedy diff[4] = 5 - 0 = 5.

Příklad 2:

Input: nums = [3,2,3,4,2]
Output: [-2,-1,0,2,3]
Vysvětlení: Pro index i = 0 je v prefixu 1 prvek a v sufixu 3 odlišné prvky. Tedy diff[0] = 1 - 3 = -2.
Pro index i = 1 jsou v prefixu 2 odlišné prvky a v sufixu 3 odlišné prvky. Tedy diff[1] = 2 - 3 = -1.
Pro index i = 2 jsou v prefixu 2 odlišné prvky a v sufixu 2 odlišné prvky. Tedy diff[2] = 2 - 2 = 0.
Pro index i = 3 jsou v prefixu 3 odlišné prvky a v sufixu 1 odlišný prvek. Tedy diff[3] = 3 - 1 = 2.
Pro index i = 4 jsou v prefixu 3 odlišné prvky a v sufixu žádné prvky. Tedy diff[4] = 3 - 0 = 3.

Omezení:

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

Je vám přiděleno pole indexované 0 o délce n.
Odlišné diferenční pole nums je pole diff o délce n takové, že diff[i] se rovná počtu různých prvků v sufixových nums [i + 1, ..., n - 1] odečteném od počtu různých prvků v předpon nums[0, ..., i].
Vrátí odlišné rozdílové pole čísel.
Všimněte si, že nums[i, ..., j] označuje podpole nums začínající indexem i a končícím indexem j včetně. Konkrétně, pokud i > j, pak nums[i, ..., j] označuje prázdný podpole.

Příklad 1:

Vstup: nums = [1,2,3,4,5]
Výstup: [-3,-1,1,3,5]
Vysvětlení: Pro index i = 0 je v předponě 1 prvek a v příponě 4 odlišné prvky. Tedy diff[0] = 1 - 4 = -3.
Pro index i = 1 jsou v předponě 2 odlišné prvky a v příponě 3 odlišné prvky. Tedy diff[1] = 2 - 3 = -1.
Pro index i = 2 jsou v předponě 3 odlišné prvky a v příponě 2 odlišné prvky. Tedy diff[2] = 3 - 2 = 1.
Pro index i = 3 jsou v předponě 4 odlišné prvky a v příponě 1 odlišný prvek. Tedy diff[3] = 4 - 1 = 3.
Pro index i = 4 je v předponě 5 různých prvků a v příponě žádné prvky. Tedy diff[4] = 5 - 0 = 5.

Příklad 2:

Vstup: nums = [3,2,3,4,2]
Výstup: [-2,-1,0,2,3]
Vysvětlení: Pro index i = 0 je v předponě 1 prvek a v příponě 3 odlišné prvky. Tedy diff[0] = 1 - 3 = -2.
Pro index i = 1 jsou v předponě 2 odlišné prvky a v příponě 3 odlišné prvky. Tedy diff[1] = 2 - 3 = -1.
Pro index i = 2 jsou v předponě 2 odlišné prvky a v příponě 2 odlišné prvky. Tedy diff[2] = 2 - 2 = 0.
Pro index i = 3 jsou v předponě 3 odlišné prvky a v příponě 1 odlišný prvek. Tedy diff[3] = 3 - 1 = 2.
Pro index i = 4 jsou v předponě 3 odlišné prvky a v příponě žádné prvky. Tedy diff[4] = 3 - 0 = 3.

Omezení:

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

Je zadáno pole nums o délce n s indexem 0.
Rozdílové pole nums je pole diff délky n takové, že diff[i] je rovno počtu rozdílných prvků v příponě nums[i + 1, ..., n - 1] odečtených od počtu rozdílných prvků v předponě nums[0, ..., i].
Vraťte pole rozdílů nums.
Všimněte si, že nums[i, ..., j] označuje dílčí pole nums začínající na indexu i a končící na indexu j včetně. Zejména pokud i > j, pak nums[i, ..., j] označuje prázdné pole.

Příklad 1:

Vstup: nums = [1,2,3,4,5]
Výstup: [-3,-1,1,3,5]
Vysvětlení: Pro index i = 0 je v prefixu 1 prvek a v sufixu 4 různé prvky. Tedy diff[0] = 1 - 4 = -3.
Pro index i = 1 jsou v prefixu 2 různé prvky a v sufixu 3 různé prvky. Tedy diff[1] = 2 - 3 = -1.
Pro index i = 2 jsou v prefixu 3 různé prvky a v sufixu 2 různé prvky. Tedy diff[2] = 3 - 2 = 1.
Pro index i = 3 jsou v prefixu 4 různé prvky a v sufixu 1 různý prvek. Tedy diff[3] = 4 - 1 = 3.
Pro index i = 4 je v prefixu 5 různých prvků a v sufixu není žádný prvek. Tedy diff[4] = 5 - 0 = 5.

Příklad 2:

Vstup: nums = [3,2,3,4,2]
Výstup: [-2,-1,0,2,3]
Vysvětlení: Pro index i = 0 je v prefixu 1 prvek a v sufixu 3 různé prvky. Tedy diff[0] = 1 - 3 = -2.
Pro index i = 1 jsou v prefixu 2 různé prvky a v sufixu 3 různé prvky. Tedy diff[1] = 2 - 3 = -1.
Pro index i = 2 jsou v prefixu 2 různé prvky a v sufixu 2 různé prvky. Tedy diff[2] = 2 - 2 = 0.
Pro index i = 3 jsou v prefixu 3 různé prvky a v sufixu 1 různý prvek. Tedy diff[3] = 3 - 1 = 2.
Pro index i = 4 jsou v prefixu 3 různé prvky a v sufixu žádný prvek. Tedy diff[4] = 3 - 0 = 3.

Omezení:

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


Existuje 0-indexované pole čísel délky n. Zpočátku jsou všechny prvky nezabarvené (má hodnotu 0).
Dostanete dotazy 2D celočíselného pole, kde dotazy[i] = [index_i, barva_i].
Pro každý dotaz obarvíte index index_i barvou color_i v poli nums.
Vrátí odpověď pole stejné délky jako dotazy, kde odpověď[i] je počet sousedních prvků stejné barvy po i^tém dotazu.
Formálněji je odpověď[i] počet indexů j, takže 0 <= j < n - 1 a nums[j] == nums[j + 1] a nums[j] != 0 po i^té dotaz.

Příklad 1:

Vstup: n = 4, dotazy = [[0,2],[1,2],[3,1],[1,1],[2,1]]
Výstup: [0,1,1,0,2]
Vysvětlení: Na začátku pole nums = [0,0,0,0], kde 0 označuje nezabarvené prvky pole.
- Po 1^st dotazu nums = [2,0,0,0]. Počet sousedních prvků stejné barvy je 0.
- Po 2^nd dotazu nums = [2,2,0,0]. Počet sousedních prvků stejné barvy je 1.
- Po 3. dotazu nums = [2,2,0,1]. Počet sousedních prvků stejné barvy je 1.
- Po 4^tém dotazu nums = [2,1,0,1]. Počet sousedních prvků stejné barvy je 0.
- Po 5^tém dotazu nums = [2,1,1,1]. Počet sousedních prvků stejné barvy je 2.

Příklad 2:

Vstup: n = 1, dotazy = [[0,100000]]
Výstup: [0]
Vysvětlení: Na začátku pole nums = [0], kde 0 označuje nezabarvené prvky pole.
- Po 1^st dotazu nums = [100000]. Počet sousedních prvků stejné barvy je 0.

Omezení:

1 <= n <= 10^5
1 <= dotazy.length <= 10^5
dotazy[i].length == 2
0 <= index_i <= n - 1
1 <= color_i <= 10^5

Existuje 0-indexované pole nums o délce n. Zpočátku jsou všechny prvky bez barvy (má hodnotu 0).
Dostanete 2D celočíselné pole dotazů, kde queries[i] = [index_i, color_i].
Pro každý dotaz obarvíte prvek na indexu index_i barvou color_i v poli nums.
Vrátí odpověď pole stejné délky jako dotazy, kde answer[i] je počet sousedních prvků se stejnou barvou za i^tým dotazem.
Formálněji řečeno, odpověď[i] je počet indexů j, takový, že 0 <= j < n - 1 a nums[j] == nums[j + 1] a nums[j] != 0 po i^tém dotazu.

Příklad 1:

Vstup: n = 4, queries = [[0,2],[1,2],[3,1],[1,1],[2,1]]
Výstup: [0,1,1,0,2]
Vysvětlení: Zpočátku číslo pole = [0,0,0,0], kde 0 označuje nebarevné prvky pole.
- Po 1^st dotazu pole = [2,0,0,0]. Počet sousedních elementů se stejnou barvou je 0.
- Po 2^. čísle dotazu = [2,2,0,0]. Počet sousedních elementů se stejnou barvou je 1.
- Po 3^. čísle dotazu = [2,2,0,1]. Počet sousedních elementů se stejnou barvou je 1.
- Po 4^tém čísle dotazu = [2,1,0,1]. Počet sousedních elementů se stejnou barvou je 0.
- Po 5^tém dotazu je číslo = [2,1,1,1]. Počet sousedních elementů se stejnou barvou je 2.

Příklad 2:

Vstup: n = 1, queries = [[0,100000]]
Výstup: [0]
Vysvětlení: Zpočátku číslo pole = [0], kde 0 označuje nebarevné prvky pole.
- Po 1^st dotazu čísla = [100000]. Počet sousedních elementů se stejnou barvou je 0.

Omezení:

1 <= n <= 10^5
1 <= queries.length <= 10^5
queries[i].length == 2
0 <= index_i <= n - 1
1 <=  color_i <= 10^5

Je dáno pole `nums` s nulovým indexem o délce `n`. Zpočátku jsou všechny prvky neobarvené (mají hodnotu 0).
Je dáno 2D pole `queries`, kde `queries[i] = [index_i, color_i]`.
Pro každý dotaz obarvíte index `index_i` barvou `color_i` v poli `nums`.
Vráťte pole `answer` stejné délky jako `queries`, kde `answer[i]` je počet sousedních prvků se stejnou barvou po `$i$.` dotazu.
Formálněji, `answer[i]` je počet indexů `j`, takových, že `0 <= j < n - 1` a `nums[j] == nums[j + 1]` a `nums[j] != 0` po `$i$.` dotazu.

Příklad 1:

Vstup: n = 4, queries = [[0,2],[1,2],[3,1],[1,1],[2,1]]
Výstup: [0,1,1,0,2]
Vysvětlení: Zpočátku pole `nums = [0,0,0,0]`, kde `0` označuje neobarvené prvky pole.
- Po 1. dotazu `nums = [2,0,0,0]`. Počet sousedních prvků se stejnou barvou je 0.
- Po 2. dotazu `nums = [2,2,0,0]`. Počet sousedních prvků se stejnou barvou je 1.
- Po 3. dotazu `nums = [2,2,0,1]`. Počet sousedních prvků se stejnou barvou je 1.
- Po 4. dotazu `nums = [2,1,0,1]`. Počet sousedních prvků se stejnou barvou je 0.
- Po 5. dotazu `nums = [2,1,1,1]`. Počet sousedních prvků se stejnou barvou je 2.

Příklad 2:

Vstup: n = 1, queries = [[0,100000]]
Výstup: [0]
Vysvětlení: Zpočátku pole `nums = [0]`, kde `0` označuje neobarvené prvky pole.
- Po 1. dotazu `nums = [100000]`. Počet sousedních prvků se stejnou barvou je 0.

Omezení:

1 <= n <= 10^5
1 <= queries.length <= 10^5
queries[i].length == 2
0 <= index_i <= n - 1
1 <=  color_i <= 10^5


Máte dané celé číslo 0-indexované pole `nums`, které reprezentuje sílu některých hrdinů. Síla skupiny hrdinů je definována následujícím způsobem:

Nechť i_0, i_1, ..., i_k jsou indexy hrdinů ve skupině. Pak síla této skupiny je `max(nums[i_0], nums[i_1], ..., nums[i_k])^2 * min(nums[i_0], nums[i_1], ..., nums[i_k])`.

Vraťte součet síly všech neprazdných skupin hrdinů, které jsou možné. Protože součet může být velmi velký, vraťte ho modulo 10^9 + 7.

Příklad 1:

Vstup: nums = [2,1,4]
Výstup: 141
Vysvětlení:
1^vá skupina: [2] má sílu = 2^2 * 2 = 8.
2^há skupina: [1] má sílu = 1^2 * 1 = 1.
3^tí skupina: [4] má sílu = 4^2 * 4 = 64.
4^tá skupina: [2,1] má sílu = 2^2 * 1 = 4.
5^tá skupina: [2,4] má sílu = 4^2 * 2 = 32.
6^tá skupina: [1,4] má sílu = 4^2 * 1 = 16.
7^má skupina: [2,1,4] má sílu = 4^2 * 1 = 16.
Součet sil všech skupin je 8 + 1 + 64 + 4 + 32 + 16 + 16 = 141.

Příklad 2:

Vstup: nums = [1,1,1]
Výstup: 7
Vysvětlení: Celkem je možné 7 skupin a síla každé skupiny bude 1. Proto součet sil všech skupin je 7.

Omezení:

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

Dostanete 0-indexované celé pole čísel reprezentujících sílu některých hrdinů. Síla skupiny hrdinů je definována následovně:

Nechť i_0, i_1, ... i_k být ukazateli hrdinů ve skupině. Pak je síla této skupiny max(nums[i_0], nums[i_1], ... ,nums[i_k])^2 * min(nums[i_0], nums[i_1], ... ,nums[i_k]).

Vrátí součet sil všech možných neprázdných skupin hrdinů. Protože součet může být velmi velký, vraťte jej modulo 10^9 + 7.

Příklad 1:

Vstup: nums = [2,1,4]
Výstup: 141
Vysvětlení:
1^. skupina: [2] má sílu = 2^2 * 2 = 8.
2^. skupina: [1] má sílu = 1^2 * 1 = 1.
3^. skupina: [4] má sílu = 4^2 * 4 = 64.
4^th grupa: [2,1] má sílu = 2^2 * 1 = 4.
5^. skupina: [2,4] má sílu = 4^2 * 2 = 32.
6^th grupa: [1,4] má sílu = 4^2 * 1 = 16.
7^. skupina: [2,1,4] má sílu = 4^2 * 1 = 16.
Součet mocnin všech skupin je 8 + 1 + 64 + 4 + 32 + 16 + 16 = 141.

Příklad 2:

Vstup: nums = [1,1,1]
Výstup: 7
Vysvětlení: Celkem je možné 7 skupin a síla každé skupiny bude 1. Součet mocnin všech skupin je tedy 7.

Omezení:

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


Je zadána permutace n celých čísel s indexem 0.
Permutace se nazývá polouspořádaná, jestliže první číslo je rovno 1 a poslední číslo je rovno n. Níže uvedenou operaci můžete provádět tolikrát, dokud z nums neuděláte polouspořádanou permutaci:

Vyberte dva sousední prvky v nums a prohoďte je.

Vraťte minimální počet operací, aby se z nums stala polouspořádaná permutace.
Permutace je posloupnost celých čísel od 1 do n o délce n obsahující každé číslo přesně jednou.

Příklad 1:

Vstup: nums = [2,1,4,3]
Výstup: 2
Vysvětlení: Pomocí této posloupnosti operací můžeme vytvořit permutaci polouspořádanou:
1 - prohoďte i = 0 a j = 1. Permutace se stane [1,2,4,3].
2 - prohoďte i = 2 a j = 3. Z permutace se stane [1,2,3,4].
Lze dokázat, že neexistuje posloupnost méně než dvou operací, která by z nums udělala polouspořádanou permutaci.

Příklad 2:

Vstup: nums = [2,4,1,3]
Výstup: 3
Vysvětlení: Pomocí této posloupnosti operací můžeme vytvořit permutaci polouspořádanou:
1 - prohoďte i = 1 a j = 2. Permutace se stane [2,1,4,3].
2 - prohoďte i = 0 a j = 1. Z permutace se stane [1,2,4,3].
3 - prohoďte i = 2 a j = 3. Permutace se změní na [1,2,3,4].
Lze dokázat, že neexistuje posloupnost méně než tří operací, která by z nums udělala polouspořádanou permutaci.

Příklad 3:

Vstup: nums = [1,3,4,2,5].
Výstup: 0
Vysvětlení: Permutace je již polouspořádanou permutací.

Omezení:

2 <= nums.length == n <= 50
1 <= nums[i] <= 50
nums je permutace.

Dostanete 0-indexovanou permutaci n celých čísel num.
Permutace se nazývá polouspořádaná, pokud se první číslo rovná 1 a poslední číslo se rovná n. Níže uvedenou operaci můžete provádět tolikrát, kolikrát chcete, dokud neuděláte nums jako polouspořádanou permutaci:

Vyberte dva sousední prvky v počtu a poté je vyměňte.

Vraťte minimální počet operací, aby se num staly polouspořádanou permutací.
Permutace je posloupnost celých čísel od 1 do n délky n obsahující každé číslo právě jednou.

Příklad 1:

Vstup: nums = [2,1,4,3]
Výstup: 2
Vysvětlení: Permutaci můžeme udělat polouspořádanou pomocí této sekvence operací:
1 - swap i = 0 a j = 1. Permutace se stává [1,2,4,3].
2 - swap i = 2 a j = 3. Permutace se stává [1,2,3,4].
Lze dokázat, že neexistuje posloupnost méně než dvou operací, které by z num udělaly semi-uspořádanou permutaci.

Příklad 2:

Vstup: nums = [2,4,1,3]
Výstup: 3
Vysvětlení: Permutaci můžeme udělat polouspořádanou pomocí této sekvence operací:
1 - swap i = 1 a j = 2. Permutace se stává [2,1,4,3].
2 - swap i = 0 a j = 1. Permutace se stává [1,2,4,3].
3 - swap i = 2 a j = 3. Permutace se stává [1,2,3,4].
Lze dokázat, že neexistuje posloupnost méně než tří operací, které by z num udělaly semi-uspořádanou permutaci.

Příklad 3:

Vstup: nums = [1,3,4,2,5]
Výstup: 0
Vysvětlení: Permutace je již polouspořádaná permutace.

Omezení:

2 <= nums.length == n <= 50
1 <= nums[i] <= 50
nums je permutace.

Je vám dána 0-indexovaná permutace n čísel nums.
Permutace je nazvaná polo-uspořádaná, pokud první číslo je rovno 1 a poslední číslo je rovno n. Můžete provádět níže uvedenou operaci tolikrát, kolikrát chcete, dokud neupravíte nums na polo-uspořádanou permutaci:

Vyberte dva sousední prvky v nums, poté je prohoďte.

Vraťte minimální počet operací k vytvoření polo-uspořádané permutace z nums.
Permutace je posloupnost celých čísel od 1 do n délky n obsahující každé číslo právě jednou.

Příklad 1:

Vstup: nums = [2,1,4,3]
Výstup: 2
Vysvětlení: Můžeme vytvořit polo-uspořádanou permutaci pomocí následující sekvence operací:
1 - prohoďte i = 0 a j = 1. Permutace se změní na [1,2,4,3].
2 - prohoďte i = 2 a j = 3. Permutace se změní na [1,2,3,4].
Může být dokázáno, že neexistuje sekvence s méně než dvěma operacemi, která by udělala z nums polo-uspořádanou permutaci.

Příklad 2:

Vstup: nums = [2,4,1,3]
Výstup: 3
Vysvětlení: Můžeme vytvořit polo-uspořádanou permutaci pomocí následující sekvence operací:
1 - prohoďte i = 1 a j = 2. Permutace se změní na [2,1,4,3].
2 - prohoďte i = 0 a j = 1. Permutace se změní na [1,2,4,3].
3 - prohoďte i = 2 a j = 3. Permutace se změní na [1,2,3,4].
Může být dokázáno, že neexistuje sekvence s méně než třemi operacemi, která by udělala z nums polo-uspořádanou permutaci.

Příklad 3:

Vstup: nums = [1,3,4,2,5]
Výstup: 0
Vysvětlení: Permutace je již polo-uspořádaná.

Omezení:

2 <= nums.length == n <= 50
1 <= nums[i] <= 50
nums je permutace.


Je zadán řetězec s indexem 0, který se skládá z číslic od 0 do 9.
Řetězec t se nazývá semirepetitivní, pokud se uvnitř t nachází nejvýše jedna po sobě jdoucí dvojice stejných číslic. Například 0010, 002020, 0123, 2002 a 54944 jsou semirepetitivní, zatímco 00101022 a 1101234883 nikoli.
Vraťte délku nejdelšího poloopakovatelného podřetězce uvnitř s.
Podřetězec je souvislá neprázdná posloupnost znaků uvnitř řetězce.

Příklad 1:

Vstup: s = „52233“
Výstup: 4
Vysvětlení: Nejdelší semi-repetitivní podřetězec je „5223“, který začíná na i = 0 a končí na j = 3.

Příklad 2:

Vstup: s = „5494“
Výstup: 4
Vysvětlení: s je semirepetitivní řetězec, takže odpověď je 4.

Příklad 3:

Vstup: s = „1111111“
Výstup: 2
Vysvětlení: Nejdelší semi-repetitivní podřetězec je „11“, který začíná na i = 0 a končí na j = 1.

Omezení:

1 <= s.length <= 50
'0' <= s[i] <= '9'

Je dán řetězec s indexem 0, který se skládá z číslic od 0 do 9.
Řetězec t se nazývá polorepetiční, jestliže uvnitř t existuje nejvýše jedna po sobě jdoucí dvojice stejných číslic. Například 0010, 002020, 0123, 2002 a 54944 jsou polorepetiční, zatímco 00101022 a 1101234883 nikoli.
Vraťte délku nejdelšího poloopakovatelného podřetězce uvnitř s.
Podřetězec je souvislá neprázdná posloupnost znaků uvnitř řetězce.

Příklad 1:

Vstup: s = „52233“
Výstup: 4
Vysvětlení: Nejdelší semi-repetitivní podřetězec je „5223“, který začíná na i = 0 a končí na j = 3.

Příklad 2:

Vstup: s = „5494“
Výstup: 4
Vysvětlení: s je semirepetitivní řetězec, takže odpověď je 4.

Příklad 3:

Vstup: s = „1111111“
Výstup: 2
Vysvětlení: Nejdelší semi-repetitivní podřetězec je „11“, který začíná na i = 0 a končí na j = 1.

Omezení:

1 <= s.length <= 50
'0' <= s[i] <= '9'

Je vám dána 0-indexovaná řetězec s, který se skládá z číslic od 0 do 9.
Řetězec t nazýváme polo-opakující, pokud uvnitř t existuje nanejvýš jeden po sobě jdoucí pár stejných číslic. Například 0010, 002020, 0123, 2002 a 54944 jsou polo-opakující, zatímco 00101022 a 1101234883 nejsou.
Vraťte délku nejdelší polo-opakující podřetězce uvnitř s.
Podřetězec je souvislá neprázdná posloupnost znaků v rámci řetězce.

Příklad 1:

Vstup: s = "52233"
Výstup: 4
Vysvětlení: Nejdelší polo-opakující podřetězec je "5223", který začíná na i = 0 a končí na j = 3.

Příklad 2:

Vstup: s = "5494"
Výstup: 4
Vysvětlení: s je polo-opakující řetězec, takže odpověď je 4.

Příklad 3:

Vstup: s = "1111111"
Výstup: 2
Vysvětlení: Nejdelší polo-opakující podřetězec je "11", který začíná na i = 0 a končí na j = 1.

Omezení:

1 <= s.length <= 50
'0' <= s[i] <= '9'


Je n přátel, kteří hrají hru. Přátelé sedí v kruhu a jsou očíslováni od 1 do n ve směru hodinových ručiček. Formálněji, pohyb ve směru hodinových ručiček od i-tého přítele vás přivede k (i+1)-mu příteli pro 1 <= i < n, a pohyb ve směru hodinových ručiček od n-tého přítele vás přivede k 1. příteli.
Pravidla hry jsou následující:
1. přítel dostane míč.

Poté 1. přítel předá míč příteli, který je od nich k kroků ve směru hodinových ručiček.
Poté by přítel, který míč obdrží, měl míč předat příteli, který je od nich 2 * k kroků ve směru hodinových ručiček.
Poté by přítel, který míč obdrží, měl míč předat příteli, který je od nich 3 * k kroků ve směru hodinových ručiček, a tak dále.

Jinými slovy, v i-tém tahu by přítel držící míč měl míč předat příteli, který je od nich i * k kroků ve směru hodinových ručiček.
Hra končí, když některý přítel obdrží míč podruhé.
Poražení hry jsou přátelé, kteří během celé hry míč neobdrželi.
Je dán počet přátel, n, a celé číslo k, vraťte pole answer, které obsahuje poražené hry ve vzestupném pořadí.

Příklad 1:

Vstup: n = 5, k = 2
Výstup: [4,5]
Vysvětlení: Hra probíhá takto:
1) Začněte u 1. přítele a předejte míč příteli, který je od nich 2 kroky - 3. přítel.
2) 3. přítel předá míč příteli, který je od nich 4 kroky - 2. přítel.
3) 2. přítel předá míč příteli, který je od nich 6 kroků - 3. přítel.
4) Hra končí, když 3. přítel obdrží míč podruhé.

Příklad 2:

Vstup: n = 4, k = 4
Výstup: [2,3,4]
Vysvětlení: Hra probíhá takto:
1) Začněte u 1. přítele a předejte míč příteli, který je od nich 4 kroky - 1. přítel.
2) Hra končí, když 1. přítel obdrží míč podruhé.

Omezení:

1 <= k <= n <= 50

Existuje n přátel, kteří hrají hru. Přátelé sedí v kruhu a jsou očíslováni od 1 do n ve směru hodinových ručiček. Formálněji řečeno, pohybem ve směru hodinových ručiček od i^-tého kamaráda se dostanete k (i+1)^-tému kamarádovi pro 1 <= i < n a pohybem ve směru hodinových ručiček od n^-tého kamaráda se dostanete k 1^-tému kamarádovi.
Pravidla hry jsou následující:
1^první kamarád dostane míč.

Poté jej 1^první kamarád předá kamarádovi, který je od něj vzdálen k kroků ve směru hodinových ručiček.
Poté by měl kamarád, který míč dostane, předat míč kamarádovi, který je od něj vzdálen 2 * k kroků ve směru hodinových ručiček.
Poté by měl kamarád, který míč dostane, předat míč kamarádovi, který je od nich vzdálen 3 * k kroků ve směru hodinových ručiček, a tak dále a tak dále.

Jinými slovy, při i^tém tahu by kamarád, který drží míč, měl míč předat kamarádovi, který je od nich vzdálen i * k kroků ve směru hodinových ručiček.
Hra končí, když některý kamarád dostane míč podruhé.
Poraženými ve hře jsou kamarádi, kteří za celou hru míč nedostali.
Při daném počtu přátel n a celém čísle k vraťte pole answer, které obsahuje poražené ve hře ve vzestupném pořadí.

Příklad 1:

Vstup: n = 5, k = 2
Výstup: [4,5]
Vysvětlení: Hra probíhá následovně:
1) Začněte u 1^prvního kamaráda a přihrajte míč kamarádovi, který je od nich vzdálen 2 kroky - 3^tému kamarádovi.
2) 3^třetí kamarád přihraje míč kamarádovi, který je od nich vzdálen 4 kroky - 2^druhý kamarád.
3) 2^druhý kamarád přihraje míč kamarádovi, který je od nich vzdálen 6 kroků - 3^třetí kamarád.
4) Hra končí v okamžiku, kdy 3^tý kamarád dostane míč podruhé.

Příklad 2:

Vstup: n = 4, k = 4
Výstup: [2,3,4]
Vysvětlení: Hra probíhá následovně:
1) Začněte u 1^prvního kamaráda a přihrajte míč kamarádovi, který je od nich vzdálen 4 kroky - 1^první kamarád.
2) Hra končí v okamžiku, kdy 1^první kamarád dostane míč podruhé.

Omezení:

1 <= k <= n <= 50

Existuje n přátel, kteří hrají hru. Přátelé sedí v kruhu a jsou očíslováni od 1 do n ve směru hodinových ručiček. Formálněji řečeno, pohybem ve směru hodinových ručiček od i^-tého kamaráda se dostanete k (i+1)^-tému kamarádovi pro 1 <= i < n a pohybem ve směru hodinových ručiček od n^-tého kamaráda se dostanete k 1^-tému kamarádovi.
Pravidla hry jsou následující:
1^první kamarád obdrží míč.

Poté jej 1^první kamarád předá kamarádovi, který je od něj vzdálen k kroků ve směru hodinových ručiček.
Poté by měl kamarád, který míč obdrží, předat míč kamarádovi, který je od něj vzdálen 2 * k kroků ve směru hodinových ručiček.
Poté by měl kamarád, který míč obdrží, předat míč kamarádovi, který je od nich vzdálen 3 * k kroků ve směru hodinových ručiček, a tak dále a tak dále.

Jinými slovy, při i^tém tahu by kamarád, který drží míč, měl míč předat kamarádovi, který je od nich vzdálen i * k kroků ve směru hodinových ručiček.
Hra končí, když některý kamarád dostane míč podruhé.
Poraženými ve hře jsou kamarádi, kteří za celou hru míč nedostali.
Při daném počtu přátel n a celém čísle k vraťte pole answer, které obsahuje poražené ve hře ve vzestupném pořadí.

Příklad 1:

Vstup: n = 5, k = 2
Výstup: [4,5]
Vysvětlení: Hra probíhá následovně:
1) Začněte u 1^prvního kamaráda a přihrajte míč kamarádovi, který je od nich vzdálen 2 kroky - 3^tý kamarád.
2) 3^třetí kamarád přihraje míč kamarádovi, který je od nich vzdálen 4 kroky - 2^druhému kamarádovi.
3) 2^druhý kamarád přihraje míč kamarádovi, který je od nich vzdálen 6 kroků - 3^třetí kamarád.
4) Hra končí v okamžiku, kdy 3^tý kamarád obdrží míč podruhé.

Příklad 2:

Vstup: n = 4, k = 4
Výstup: [2,3,4]
Vysvětlení: Hra probíhá následovně:
1) Začněte u 1^prvního kamaráda a přihrajte míč kamarádovi, který je od nich vzdálen 4 kroky - 1^první kamarád.
2) Hra končí v okamžiku, kdy 1^první kamarád dostane míč podruhé.

Constraints:

1 <= k <= n <= 50


Pole s indexy začínajícími od 0 derived s délkou n je vytvořeno výpočtem bitového XOR (⊕) sousedních hodnot v binárním poli original s délkou n.
Konkrétně pro každý index i v rozmezí [0, n - 1]:

Pokud i = n - 1, pak derived[i] = original[i] ⊕ original[0].
Jinak derived[i] = original[i] ⊕ original[i + 1].

Je dáno pole derived a vaším úkolem je určit, zda existuje platné binární pole original, které mohlo vytvořit derived.
Vraťte true, pokud takové pole existuje, nebo false jinak.

Binární pole je pole obsahující pouze 0 a 1.

Příklad 1:

Vstup: derived = [1,1,0]
Výstup: true
Vysvětlení: Platné pole original, které vytvoří derived je [0,1,0].
derived[0] = original[0] ⊕ original[1] = 0 ⊕ 1 = 1
derived[1] = original[1] ⊕ original[2] = 1 ⊕ 0 = 1
derived[2] = original[2] ⊕ original[0] = 0 ⊕ 0 = 0

Příklad 2:

Vstup: derived = [1,1]
Výstup: true
Vysvětlení: Platné pole original, které vytvoří derived je [0,1].
derived[0] = original[0] ⊕ original[1] = 1
derived[1] = original[1] ⊕ original[0] = 1

Příklad 3:

Vstup: derived = [1,0]
Výstup: false
Vysvětlení: Neexistuje žádné platné pole original, které vytvoří derived.

Omezení:

n == derived.length
1 <= n <= 10^5
Hodnoty v derived jsou buď 0 nebo 1

0-indexované pole odvozené s délkou n je odvozeno výpočtem bitového XOR (⊕) sousedních hodnot v binárním originálu pole délky n.
Konkrétně pro každý index i v rozsahu [0, n - 1]:

Jestliže i = n - 1, pak odvozené[i] = původní[i] ⊕ původní[0].
Jinak odvozeno[i] = původní[i] ⊕ původní[i + 1].

Vzhledem k odvozenému poli je vaším úkolem určit, zda existuje platný originál binárního pole, který by mohl být odvozen.
Vraťte true, pokud takové pole existuje, nebo false v opačném případě.

Binární pole je pole obsahující pouze 0 a 1

Příklad 1:

Vstup: odvozeno = [1,1,0]
Výstup: pravda
Vysvětlení: Platné původní pole, které dává odvozené, je [0,1,0].
odvozeno[0] = původní[0] ⊕ původní[1] = 0 ⊕ 1 = 1
odvozeno[1] = původní[1] ⊕ původní[2] = 1 ⊕ 0 = 1
odvozeno[2] = původní[2] ⊕ původní[0] = 0 ⊕ 0 = 0

Příklad 2:

Vstup: odvozeno = [1,1]
Výstup: pravda
Vysvětlení: Platné původní pole, které dává odvozené, je [0,1].
odvozeno[0] = původní[0] ⊕ původní[1] = 1
odvozeno[1] = původní[1] ⊕ původní[0] = 1

Příklad 3:

Vstup: odvozeno = [1,0]
Výstup: nepravda
Vysvětlení: Neexistuje žádné platné původní pole, které poskytuje odvozené.

Omezení:

n == odvozená.length
1 <= n <= 10^5
Odvozené hodnoty jsou buď 0 nebo 1


Dostanete řetězec s, který se skládá pouze z velkých anglických písmen.
Na tento řetězec můžete použít některé operace, kde v jedné operaci můžete odstranit jakýkoli výskyt jednoho z podřetězců "AB" nebo "CD" z s.
Vraťte minimální možnou délku výsledného řetězce, kterou můžete získat.
Všimněte si, že řetězec se po odstranění podřetězce zřetězí a může vytvořit nové podřetězce "AB" nebo "CD".

Příklad 1:

Vstup: s = "ABFCACDB"
Výstup: 2
Vysvětlení: Můžeme provádět následující operace:
- Odstraňte podřetězec "ABFCACDB", takže s = "FCACDB".
- Odstraňte podřetězec "FCACDB", takže s = "FCAB".
- Odstraňte podřetězec "FCAB", takže s = "FC".
Výsledná délka řetězce je tedy 2.
Lze ukázat, že je to minimální délka, kterou můžeme získat.
Příklad 2:

Vstup: s = "ACBBD"
Výstup: 5
Vysvětlení: S řetězcem nemůžeme provádět žádné operace, takže délka zůstává stejná.

Omezení:

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

Máte dáno řetězec s, který se skládá pouze z velkých písmen anglické abecedy.
Můžete provést operace na tomto řetězci, kde v jedné operaci můžete odstranit libovolný výskyt jednoho z podřetězců "AB" nebo "CD" ze s.
Vraťte minimální možnou délku výsledného řetězce, kterou můžete získat.
Všimněte si, že řetězec se po odstranění podřetězce spojí a může vytvořit nové podřetězce "AB" nebo "CD".

Příklad 1:

Vstup: s = "ABFCACDB"
Výstup: 2
Vysvětlení: Můžeme provést následující operace:
- Odstranit podřetězec "ABFCACDB", takže s = "FCACDB".
- Odstranit podřetězec "FCACDB", takže s = "FCAB".
- Odstranit podřetězec "FCAB", takže s = "FC".
Takže výsledná délka řetězce je 2.
Je možné ukázat, že je to minimální délka, které můžeme dosáhnout.

Příklad 2:

Vstup: s = "ACBBD"
Výstup: 5
Vysvětlení: Na řetězci nemůžeme provést žádné operace, takže délka zůstává stejná.

Omezení:

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

Je vám přidělen řetězec s skládající se pouze z velkých anglických písmen.
Na tento řetězec můžete aplikovat některé operace, kde v jedné operaci můžete odstranit jakýkoli výskyt jednoho z podřetězců "AB" nebo "CD" z řetězce.
Vrátí minimální možnou délku výsledného řetězce, kterou můžete získat.
Všimněte si, že řetězec se po odstranění podřetězce zřetězí a může vytvořit nové podřetězce "AB" nebo "CD".

Příklad 1:

Vstup: s = "ABFCACDB"
Výstup: 2
Vysvětlení: Můžeme provést následující operace:
- Odstraňte podřetězec "ABFCACDB", takže s = "FCACDB".
- Odstraňte podřetězec "FCACDB", takže s = "FCAB".
- Odstraňte podřetězec "FCAB", takže s = "FC".
Výsledná délka řetězce je tedy 2.
Lze ukázat, že je to minimální délka, kterou můžeme získat.
Příklad 2:

Vstup: s = "ACBBD"
Výstup: 5
Vysvětlení: S řetězcem nemůžeme provádět žádné operace, takže délka zůstává stejná.

Omezení:

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


Vzhledem k kladnému celému číslu n vraťte číslo trestu n.
Trestné číslo n je definováno jako součet druhých mocnin všech celých čísel i tak, že:

1 <= i <= n
Desetinnou reprezentaci i * i lze rozdělit na souvislé podřetězce tak, že součet celočíselných hodnot těchto podřetězců se rovná i.

Příklad 1:

Vstup: n = 10
Výstup: 182
Vysvětlení: Existují přesně 3 celá čísla i, která splňují podmínky v příkazu:
- 1, protože 1 * 1 = 1
- 9, protože 9 * 9 = 81 a 81 lze rozdělit na 8 + 1.
- 10, protože 10 * 10 = 100 a 100 lze rozdělit na 10 + 0.
Číslo trestu 10 je tedy 1 + 81 + 100 = 182

Příklad 2:

Vstup: n = 37
Výstup: 1478
Vysvětlení: Existují přesně 4 celá čísla i, která splňují podmínky v příkazu:
- 1, protože 1 * 1 = 1.
- 9, protože 9 * 9 = 81 a 81 lze rozdělit na 8 + 1.
- 10, protože 10 * 10 = 100 a 100 lze rozdělit na 10 + 0.
- 36, protože 36 * 36 = 1296 a 1296 lze rozdělit na 1 + 29 + 6.
Číslo trestu 37 je tedy 1 + 81 + 100 + 1296 = 1478

Omezení:

1 <= n <= 1000

Je dán kladný celý číslo n, vraťte trestní číslo n.
Trestní číslo n je definováno jako součet čtverců všech celých čísel i takových, že:

1 <= i <= n
Desetinná reprezentace i * i může být rozdělena na souvislé podřetězce, takže součet hodnot těchto podřetězců se rovná i.

Příklad 1:

Vstup: n = 10
Výstup: 182
Vysvětlení: Existují přesně 3 celá čísla i, která splňují podmínky uvedené v zadání:
- 1, protože 1 * 1 = 1
- 9, protože 9 * 9 = 81 a 81 může být rozděleno na 8 + 1.
- 10, protože 10 * 10 = 100 a 100 může být rozděleno na 10 + 0.
Proto je trestní číslo 10 rovno 1 + 81 + 100 = 182

Příklad 2:

Vstup: n = 37
Výstup: 1478
Vysvětlení: Existují přesně 4 celá čísla i, která splňují podmínky uvedené v zadání:
- 1, protože 1 * 1 = 1.
- 9, protože 9 * 9 = 81 a 81 může být rozděleno na 8 + 1.
- 10, protože 10 * 10 = 100 a 100 může být rozděleno na 10 + 0.
- 36, protože 36 * 36 = 1296 a 1296 může být rozděleno na 1 + 29 + 6.
Proto je trestní číslo 37 rovno 1 + 81 + 100 + 1296 = 1478

Omezení:

1 <= n <= 1000

Při zadání kladného celého čísla n vrátí číslo trestu n.
Číslo trestu n je definováno jako součet druhých mocnin všech celých čísel i takových, že:

1 <= i <= n
Desítková reprezentace i * i může být rozdělena do souvislých podřetězců tak, aby součet celočíselných hodnot těchto podřetězců byl roven i.

Příklad 1:

Vstup: n = 10
Výstup: 182
Vysvětlení: Existují přesně 3 celá čísla i, která splňují podmínky ve výroku:
- 1 protože 1 * 1 = 1
- 9, protože 9 * 9 = 81 a 81 lze rozdělit na 8 + 1.
- 10, protože 10 * 10 = 100 a 100 lze rozdělit na 10 + 0.
Číslo trestu 10 je tedy 1 + 81 + 100 = 182

Příklad 2:

Vstup: n = 37
Výstup: 1478
Vysvětlení: Existují přesně 4 celá čísla i, která splňují podmínky v příkazu:
- 1 protože 1 * 1 = 1.
- 9, protože 9 * 9 = 81 a 81 lze rozdělit na 8 + 1.
- 10, protože 10 * 10 = 100 a 100 lze rozdělit na 10 + 0.
- 36 protože 36 * 36 = 1296 a 1296 lze rozdělit na 1 + 29 + 6.
Číslo trestu 37 je tedy 1 + 81 + 100 + 1296 = 1478

Omezení:

1 <= n <= 1000


Jsou zadána dvě celočíselná pole o velikosti n s indexem 0, která představují náklady a čas potřebný k vymalování n různých stěn. K dispozici jsou dva malíři:

Placený malíř, který vymaluje i^tou stěnu za čas[i] jednotek času a vezme si náklady[i] jednotek peněz.
Bezplatný malíř, který vymaluje libovolnou stěnu za 1 časovou jednotku s náklady 0. Bezplatného malíře však lze použít pouze tehdy, je-li placený malíř již obsazen.

Vrátí minimální množství peněz potřebných k vymalování n stěn.

Příklad 1:

Vstup: náklady = [1,2,3,2], čas = [1,2,3,2].
Výstup: 3
Vysvětlení: Stěny s indexy 0 a 1 vymaluje placený malíř, a to za 3 časové jednotky, zatímco bezplatný malíř vymaluje stěny s indexy 2 a 3 zdarma za 2 časové jednotky. Celkové náklady jsou tedy 1 + 2 = 3.

Příklad 2:

Vstupní údaje: náklady = [2,3,4,2], čas = [1,1,1,1].
Výstup: 4
Vysvětlení: Stěny s indexy 0 a 3 vymaluje placený malíř, a to za 2 časové jednotky, zatímco bezplatný malíř vymaluje stěny s indexy 1 a 2 bez nákladů za 2 časové jednotky. Celkové náklady jsou tedy 2 + 2 = 4.

Omezení:

1 <= cost.length <= 500
cost.length == time.length
1 <= cost[i] <= 10^6
1 <= time[i] <= 500

Dostanete dvě 0-indexovaná celočíselná pole, náklady a čas, o velikosti n představující náklady a čas potřebný k vymalování n různých stěn. K dispozici jsou dva malíři:

Placený malíř, který maluje i-tou zeď v čas[i] jednotkách času a stojí náklady[i] jednotky peněz.
Bezplatný malíř, který namaluje libovolnou stěnu za 1 jednotku času za cenu 0. Bezplatný malíř však může být použit pouze v případě, že je placený malíř již obsazen.

Vraťte minimální částku peněz potřebnou k vymalování n stěn.

Příklad 1:

Vstup: náklady = [1,2,3,2], čas = [1,2,3,2]
Výstup: 3
Vysvětlení: Stěny na indexu 0 a 1 namaluje placený malíř a zabere to 3 jednotky času; mezitím bezplatný malíř vymaluje stěny na indexu 2 a 3 zdarma za 2 jednotky času. Celkové náklady jsou tedy 1 + 2 = 3.

Příklad 2:

Vstup: náklady = [2,3,4,2], čas = [1,1,1,1]
Výstup: 4
Vysvětlení: Stěny na indexu 0 a 3 namaluje placený malíř a zabere to 2 jednotky času; mezitím bezplatný malíř vymaluje stěny na indexu 1 a 2 zdarma za 2 jednotky času. Celkové náklady jsou tedy 2 + 2 = 4.

Omezení:

1 <= cost.length <= 500
cost.length == time.length
1 <= náklady[i] <= 10^6
1 <= čas[i] <= 500

Dostanete dvě celočíselná pole indexovaná 0, cost a time, o velikosti n představující náklady a čas potřebný k vymalování n různých zdí. K dispozici jsou dva malíři:

Placený malíř, který namaluje i^-tou stěnu v time[i] jednotkách času a bere cost[i] jednotky peněz.
Zdarma malíř, který namaluje jakoukoli zeď za 1 jednotku času za cenu 0. Bezplatný malíř však může být použit pouze v případě, že je placený malíř již obsazen.

Vraťte minimální částku peněz potřebnou k vymalování n stěn.

Příklad 1:

Vstup: cost = [1,2,3,2], time = [1,2,3,2]
Výstup: 3
Vysvětlení: Stěny na indexu 0 a 1 budou namalovány placeným malířem a bude to trvat 3 jednotky času; Mezitím bezplatný malíř vymaluje stěny indexem 2 a 3, a to zdarma za 2 jednotky času. Celkové náklady jsou tedy 1 + 2 = 3.

Příklad 2:

Vstup: cost = [2,3,4,2], time = [1,1,1,1]
Výstup: 4
Vysvětlení: Stěny v indexu 0 a 3 budou namalovány placeným malířem a bude to trvat 2 jednotky času; Mezitím zdarma malíř vymaluje stěny na index 1 a 2, a to zdarma za 2 jednotky času. Celkové náklady jsou tedy 2 + 2 = 4.

Omezení:

1 <= cost.length <= 500
cost.length == time.length
1 <= cost[i] <= 10^6
1 <= time[i] <= 500


Je zadáno pole celých čísel nums velikosti n s indexem 0, které představuje cenu sběru různých čokolád. Náklady na sběr čokolády s indexem i jsou nums[i]. Každá čokoláda je jiného typu a na počátku je čokoláda na indexu i^tého typu.
V rámci jedné operace lze provést následující úkony s vynaloženými náklady x:

Současně změníme čokoládu i^tého typu na ((i + 1) mod n)^tý typ pro všechny čokolády.

Vraťte minimální náklady na shromáždění čokolád všech typů za předpokladu, že můžete provést libovolný počet operací.

Příklad 1:

Vstup: nums = [20,1,15], x = 5
Výstup: 13
Vysvětlení: Na začátku jsou typy čokolád [0,1,2]. Koupíme 1^první typ čokolády za cenu 1.
Nyní provedeme operaci s náklady 5 a typy čokolád budou [1,2,0]. Koupíme 2^druhý^ typ čokolády s náklady 1.
Nyní opět provedeme operaci s náklady 5 a typy čokolád se stanou [2,0,1]. Koupíme 0^tý typ čokolády s náklady 1.
Celkové náklady tedy budou (1 + 5 + 1 + 5 + 1) = 13. Můžeme dokázat, že je to optimální.

Příklad 2:

Vstup: nums = [1,2,3], x = 4
Výstup: 6
Vysvětlení: Všechny tři druhy čokolády vybereme za jejich cenu, aniž bychom provedli jakoukoli operaci. Celková cena je tedy 1 + 2 + 3 = 6.

Omezení:

1 <= nums.length <= 1000
1 <= nums[i] <= 10^9
1 <= x <= 10^9

Dostanete 0-indexované celé pole čísel velikosti n představující náklady na sběr různých čokolád. Náklady na sběr čokolády na indexu i jsou num[i]. Každá čokoláda je jiného typu a zpočátku je čokoláda s indexem i i-tého typu.
V jedné operaci můžete provést následující s vynaloženými náklady x:

Současně změňte čokoládu i^-tého typu na ((i + 1) mod n)^-tý typ pro všechny čokolády.

Vraťte minimální náklady na sbírání čokolád všech typů, protože můžete provádět tolik operací, kolik chcete.

Příklad 1:

Vstup: nums = [20,1,15], x = 5
Výstup: 13
Vysvětlení: Zpočátku jsou typy čokolády [0,1,2]. Koupíme 1. druh čokolády v ceně 1.
Nyní provedeme operaci v ceně 5 a druhy čokolád se stanou [1,2,0]. Koupíme druhý druh čokolády za cenu 1.
Nyní opět provedeme operaci v ceně 5 a druhy čokolády se stanou [2,0,1]. Koupíme 0^tý druh čokolády v ceně 1.
Celkové náklady tak budou (1 + 5 + 1 + 5 + 1) = 13. Můžeme dokázat, že je to optimální.

Příklad 2:

Vstup: nums = [1,2,3], x = 4
Výstup: 6
Vysvětlení: Budeme sbírat všechny tři druhy čokolád za jejich vlastní cenu, aniž bychom museli provádět jakékoli operace. Celkové náklady jsou tedy 1 + 2 + 3 = 6.

Omezení:

1 <= nums.length <= 1000
1 <= nums[i] <= 10^9
1 <= x <= 10^9


Máte dána dvě celá čísla, n a k. Pole různých kladných celých čísel se nazývá k-izolační pole, pokud neexistuje žádná dvojice různých prvků, jejichž součet je k. Vraťte minimální možný součet k-izolačního pole délky n.

Příklad 1:

Vstup: n = 5, k = 4
Výstup: 18
Vysvětlení: Zvažte k-izolační pole [1,2,4,5,6], které má součet 18. Lze dokázat, že neexistuje k-izolační pole s menším součtem než 18.

Příklad 2:

Vstup: n = 2, k = 6
Výstup: 3
Vysvětlení: Můžeme vytvořit pole [1,2], které má součet 3. Lze dokázat, že neexistuje k-izolační pole s menším součtem než 3.

Omezení:

1 <= n, k <= 50

Jsou vám dána dvě celá čísla, n a k.
Pole různých kladných celých čísel se nazývá pole vyhýbání se k, pokud neexistuje žádný pár odlišných prvků, které by měly součet k.
Vrátit minimální možný součet k-vyhýbavého pole délky n.

Příklad 1:

Vstup: n = 5, k = 4
Výstup: 18
Vysvětlení: Uvažujme pole vyhýbající se k [1,2,4,5,6], které má součet 18.
Lze dokázat, že neexistuje žádné k-vyhýbavého pole se součtem menším než 18.

Příklad 2:

Vstup: n = 2, k = 6
Výstup: 3
Vysvětlení: Můžeme sestrojit pole [1,2], které má součet 3.
Lze dokázat, že neexistuje žádné pole k-vyhýbání se součtem menším než 3.

Omezení:

1 <= n, k <= 50

Jsou dána dvě celá čísla n a k.
Pole různých kladných celých čísel se nazývá pole, které se vyhýbá k, pokud neexistuje žádná dvojice různých prvků, jejichž součet je k.
Vraťte minimální možný součet pole délky n, které se vyhýbá k.

Příklad 1:

Vstup: n = 5, k = 4
Výstup: 18
Vysvětlení: Uvažujme pole [1,2,4,5,6], jehož součet je 18.
Lze dokázat, že neexistuje žádné k-vyhýbající se pole se součtem menším než 18.

Příklad 2:

Vstup: n = 2, k = 6
Výstup: 3
Vysvětlení: Výstup: Můžeme sestrojit pole [1,2], jehož součet je 3.
Lze dokázat, že neexistuje žádné pole, které by se vyhnulo k a jehož součet by byl menší než 3.

Omezení:

1 <= n, k <= 50