Dostanete rozměry 2D 0-indexovaného celočíselného pole.
Pro všechny indexy i, 0 <= i < rozměry.length, rozměry[i][0] představují délku a rozměry[i][1] představují šířku obdélníku i.
Vraťte oblast obdélníku s nejdelší úhlopříčkou. Pokud existuje více obdélníků s nejdelší úhlopříčkou, vraťte oblast obdélníku s maximální plochou.

Příklad 1:

Vstup: rozměry = [[9,3],[8,6]]
Výstup: 48
Vysvětlení:
Pro index = 0, délka = 9 a šířka = 3. Délka úhlopříčky = sqrt(9 * 9 + 3 * 3) = sqrt(90) ≈ 9,487.
Pro index = 1, délka = 8 a šířka = 6. Délka úhlopříčky = sqrt(8 * 8 + 6 * 6) = sqrt(100) = 10.
Obdélník na indexu 1 má tedy větší délku úhlopříčky, proto vrátíme oblast = 8 * 6 = 48.

Příklad 2:

Vstup: rozměry = [[3,4],[4,3]]
Výstup: 12
Vysvětlení: Délka úhlopříčky je pro obě stejná, což je 5, takže maximální plocha = 12.

Omezení:

1 <= rozměry.length <= 100
rozměry[i].length == 2
1 <= rozměry[i][0], rozměry[i][1] <= 100

Je vám dáno 2D pole celých čísel s indexováním od nuly dimensions.
Pro všechny indexy i, 0 <= i < dimensions.length, dimensions[i][0] představuje délku a dimensions[i][1] představuje šířku obdélníku i.
Vrátte plochu obdélníku s nejdelší úhlopříčkou. Pokud existuje více obdélníků s nejdelší úhlopříčkou, vraťte plochu obdélníku s maximální plochou.

Příklad 1:

Vstup: dimensions = [[9,3],[8,6]]
Výstup: 48
Vysvětlení:
Pro index = 0, délka = 9 a šířka = 3. Délka úhlopříčky = sqrt(9 * 9 + 3 * 3) = sqrt(90) ≈ 9.487.
Pro index = 1, délka = 8 a šířka = 6. Délka úhlopříčky = sqrt(8 * 8 + 6 * 6) = sqrt(100) = 10.
Takže obdélník na indexu 1 má delší úhlopříčku, proto vracíme plochu = 8 * 6 = 48.

Příklad 2:

Vstup: dimensions = [[3,4],[4,3]]
Výstup: 12
Vysvětlení: Délka úhlopříčky je stejná pro oba obdélníky, což je 5, takže maximální plocha = 12.

Omezení:

1 <= dimensions.length <= 100
dimensions[i].length == 2
1 <= dimensions[i][0], dimensions[i][1] <= 100

Získáte 2D celočíselné pole kót indexované 0.
Pro všechny indexy i, 0 <= i < dimensions.length, dimensions[i][0] představuje délku a dimensions[i][1] představuje šířku obdélníku i.
Vrátí plochu obdélníku, který má nejdelší úhlopříčku. Pokud existuje více obdélníků s nejdelší úhlopříčkou, vrátí se plocha obdélníku s maximální plochou.

Příklad 1:

Vstup: dimensions = [[9,3],[8,6]]
Výstup: 48
Vysvětlení:
Pro index = 0, délka = 9 a šířka = 3. Diagonální délka = sqrt(9 * 9 + 3 * 3) = sqrt(90) ≈ 9,487.
Pro index = 1, délku = 8 a šířku = 6. Diagonální délka = sqrt(8 * 8 + 6 * 6) = sqrt(100) = 10.
Obdélník na indexu 1 má tedy větší délku úhlopříčky, proto vrátíme plochu = 8 * 6 = 48.

Příklad 2:

Vstup: dimensions = [[3,4],[4,3]]
Výstup: 12
Vysvětlení: Délka úhlopříčky je pro oba stejná, což je 5, takže maximální plocha = 12.

Omezení:

1 <= dimensions.length <= 100
dimensions[i].length == 2
1 <= dimensions[i][0], dimensions[i][1] <= 100


Je vám dáno pole kladných celých čísel nums s indexováním od 0. Podpole nums je nazýváno incremovatelné, pokud nums se stane striktně rostoucím po odstranění tohoto podpole. Například, podpole [3, 4] je incremovatelné podpole pole [5, 3, 4, 6, 7], protože odstranění tohoto podpole změní pole [5, 3, 4, 6, 7] na [5, 6, 7], které je striktně rostoucí.
Vraťte celkový počet incremovatelných podpolí pole nums.
Poznámka, že prázdné pole je považováno za striktně rostoucí.
Podpole je souvislá neprázdná posloupnost prvků v poli.

Příklad 1:

Vstup: nums = [1,2,3,4]
Výstup: 10
Vysvětlení: 10 incremovatelných podpolí je: [1], [2], [3], [4], [1,2], [2,3], [3,4], [1,2,3], [2,3,4] a [1,2,3,4], protože odstraněním kteréhokoliv z těchto podpolí se nums stane striktně rostoucí. Poznámka, že nemůžete vybrat prázdné podpole.

Příklad 2:

Vstup: nums = [6,5,7,8]
Výstup: 7
Vysvětlení: 7 incremovatelných podpolí je: [5], [6], [5,7], [6,5], [5,7,8], [6,5,7] a [6,5,7,8].
Je možné ukázat, že existuje pouze 7 incremovatelných podpolí v nums.

Příklad 3:

Vstup: nums = [8,7,6,6]
Výstup: 3
Vysvětlení: 3 incremovatelná podpole jsou: [8,7,6], [7,6,6] a [8,7,6,6]. Poznámka, že [8,7] není incremovatelné podpole, protože po odstranění [8,7] se nums změní na [6,6], což je seřazeno vzestupně, ale není striktně rostoucí.

Omezení:

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

Je zadáno pole kladných celých čísel s indexem 0.
Dílčí pole nums se nazývá odstranitelné, jestliže se nums při odstranění tohoto dílčího pole stane striktně rostoucím. Například pole [3, 4] je odstranitelné pole [5, 3, 4, 6, 7], protože odstraněním tohoto pole se pole [5, 3, 4, 6, 7] změní na pole [5, 6, 7], které je striktně rostoucí.
Vraťte celkový počet inkrementovatelných podpolí nums.
Všimněte si, že prázdné pole je považováno za striktně rostoucí pole.
Podpole je souvislá neprázdná posloupnost prvků uvnitř pole.

Příklad 1:

Vstup: nums = [1,2,3,4]
Výstup: 10
Vysvětlení: 10 inkrementovatelných dílčích polí je: [1], [2], [3], [4], [1,2], [2,3], [3,4], [1,2,3], [2,3,4] a [1,2,3,4], protože při odstranění kteréhokoli z těchto podčísel se nums stane striktně rostoucím. Všimněte si, že nelze vybrat prázdné podpole.

Příklad 2:

Vstup: nums = [6,5,7,8]
Výstup: 7
Vysvětlení: 7 inkrementovatelných dílčích polí je: [5], [6], [5,7], [6,5], [5,7,8], [6,5,7] a [6,5,7,8].
Lze ukázat, že v nums je pouze 7 inkrementovatelných dílčích polí.

Příklad 3:

Vstup: nums = [8,7,6,6]
Výstup: 3
Vysvětlení: 3 inkrementovatelné pole jsou: [8,7,6], [7,6,6] a [8,7,6,6]. Všimněte si, že [8,7] není vzestupné podpole, protože po odstranění [8,7] se z nums stane [6,6], které je seřazeno vzestupně, ale není striktně rostoucí.

Omezení:

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


Je zadáno pole celých čísel nums s indexem 0 a celé číslo k.
V jedné operaci můžete vybrat libovolný index i pole nums tak, že 0 <= i < nums.length - 1, a nahradit nums[i] a nums[i + 1] jediným výskytem nums[i] & nums[i + 1], kde & představuje operátor bitového AND.
Vraťte minimální možnou hodnotu bitového OR zbývajících prvků nums po použití nejvýše k operací.

Příklad 1:

Vstup: nums = [3,5,3,2,7], k = 2
Výstup: 3
Vysvětlení: Proveďme následující operace:
1. Nahraďte nums[0] a nums[1] za (nums[0] & nums[1]) tak, aby se nums rovnalo [1,3,2,7].
2. Nahraďte nums[2] a nums[3] za (nums[2] & nums[3]) tak, aby se nums rovnalo [1,3,2].
Výsledné bitové nebo pole je 3.
Lze ukázat, že 3 je minimální možná hodnota bitového OR zbývajících prvků nums po aplikaci nejvýše k operací.
Příklad 2:

Vstup: nums = [7,3,15,14,2,8], k = 4
Výstup: 2
Vysvětlení: Proveďme následující operace:
1. Nahraďte nums[0] a nums[1] za (nums[0] & nums[1]) tak, aby se nums rovnalo [3,15,14,2,8].
2. Nahraďte nums[0] a nums[1] za (nums[0] & nums[1]) tak, aby se nums rovnalo [3,14,2,8].
3. Nahraďte nums[0] a nums[1] za (nums[0] & nums[1]) tak, aby se nums rovnalo [2,2,8].
4. Nahraďte nums[1] a nums[2] za (nums[1] & nums[2]) tak, aby se nums rovnalo [2,0].
Výsledné bitové nebo pole má hodnotu 2.
Lze ukázat, že 2 je minimální možná hodnota bitového OR zbývajících prvků nums po aplikaci nejvýše k operací.

Příklad 3:

Vstup: nums = [10,7,10,3,9,14,9,4], k = 1
Výstup: 15
Vysvětlení: Bez použití jakýchkoli operací je bitově-or nums 15.
Lze ukázat, že 15 je minimální možná hodnota bitového OR zbývajících prvků nums po aplikaci nejvýše k operací.

Omezení:

1 <= nums.length <= 10^5
0 <= nums[i] < 2^30
0 <= k < nums.length

Je zadáno pole celých čísel nums s indexem 0 a celé číslo k.
V jedné operaci můžete vybrat libovolný index i pole nums tak, že 0 <= i < nums.length - 1, a nahradit nums[i] a nums[i + 1] jediným výskytem nums[i] & nums[i + 1], kde & představuje operátor bitového AND.
Vraťte minimální možnou hodnotu bitového OR zbývajících prvků nums po použití nejvýše k operací.

Příklad 1:

Vstup: nums = [3,5,3,2,7], k = 2
Výstup: 3
Vysvětlení: Proveďme následující operace:
1. Nahraďte nums[0] a nums[1] za (nums[0] & nums[1]) tak, aby se nums rovnalo [1,3,2,7].
2. Nahraďte nums[2] a nums[3] za (nums[2] & nums[3]) tak, aby se nums rovnalo [1,3,2].
Výsledné bitové nebo pole je 3.
Lze ukázat, že 3 je minimální možná hodnota bitového OR zbývajících prvků nums po aplikaci nejvýše k operací.
Příklad 2:

Vstup: nums = [7,3,15,14,2,8], k = 4
Výstup: 2
Vysvětlení: Proveďme následující operace:
1. Nahraďte nums[0] a nums[1] za (nums[0] & nums[1]) tak, aby se nums rovnalo [3,15,14,2,8].
2. Nahraďte nums[0] a nums[1] za (nums[0] & nums[1]) tak, aby se nums rovnalo [3,14,2,8].
3. Nahraďte nums[0] a nums[1] za (nums[0] & nums[1]) tak, aby se nums rovnalo [2,2,8].
4. Nahraďte nums[1] a nums[2] za (nums[1] & nums[2]) tak, aby se nums rovnalo [2,0].
Výsledné bitové nebo pole má hodnotu 2.
Lze ukázat, že 2 je minimální možná hodnota bitového OR zbývajících prvků nums po aplikaci nejvýše k operací.

Příklad 3:

Vstup: nums = [10,7,10,3,9,14,9,4], k = 1
Výstup: 15
Vysvětlení: Bez použití jakýchkoli operací je bitové číslo nums 15.
Lze ukázat, že 15 je minimální možná hodnota bitového OR zbývajících prvků nums po aplikaci nejvýše k operací.

Omezení:

1 <= nums.length <= 10^5
0 <= nums[i] < 2^30
0 <= k < nums.length

Dostanete 0-indexované celočíselné pole nums a celé číslo k.
V jedné operaci můžete vybrat libovolný index i z nums tak, že 0 <= i < nums.length - 1 a nahradit nums[i] a nums[i + 1] jediným výskytem nums[i] & nums[i + 1], kde & představuje bitový operátor AND.
Vrátí minimální možnou hodnotu bitového OR zbývajících prvků num po použití nejvýše k operací.

Příklad 1:

Vstup: nums = [3,5,3,2,7], k = 2
Výstup: 3
Vysvětlení: Proveďme následující operace:
1. Nahraďte nums[0] a nums[1] za (nums[0] & nums[1]), aby se nums rovnalo [1,3,2,7].
2. Nahraďte nums[2] a nums[3] za (nums[2] & nums[3]), aby se nums rovnalo [1,3,2].
Bitové nebo konečné pole je 3.
Lze ukázat, že 3 je minimální možná hodnota bitového OR zbývajících prvků nums po aplikaci nejvýše k operací.
Příklad 2:

Vstup: nums = [7,3,15,14,2,8], k = 4
Výstup: 2
Vysvětlení: Proveďme následující operace:
1. Nahraďte nums[0] a nums[1] za (nums[0] & nums[1]), aby se nums rovnalo [3,15,14,2,8].
2. Nahraďte nums[0] a nums[1] za (nums[0] & nums[1]), aby se nums rovnalo [3,14,2,8].
3. Nahraďte nums[0] a nums[1] za (nums[0] & nums[1]), aby se nums rovnalo [2,2,8].
4. Nahraďte nums[1] a nums[2] za (nums[1] & nums[2]), aby se nums rovnalo [2,0].
Bitové nebo konečné pole je 2.
Lze ukázat, že 2 je minimální možná hodnota bitového OR zbývajících prvků num po aplikaci nejvýše k operací.

Příklad 3:

Vstup: nums = [10,7,10,3,9,14,9,4], k = 1
Výstup: 15
Vysvětlení: Bez použití jakýchkoli operací je bitový nebo nums 15.
Lze ukázat, že 15 je minimální možná hodnota bitového OR zbývajících prvků nums po použití nejvýše k operací.

Omezení:

1 <= nums.length <= 10^5
0 <= nums[i] < 2^30
0 <= k < nums.length


Je vám dáno pole kladných celých čísel nums délky n.
Mnohoúhelník je uzavřená rovinná figura, která má alespoň 3 strany. Nejdelší strana mnohoúhelníku je menší než součet jeho ostatních stran.
Naopak, pokud máte k (k >= 3) kladných reálných čísel a_1, a_2, a_3, ..., a_k kde a_1 <= a_2 <= a_3 <= ... <= a_k a a_1 + a_2 + a_3 + ... + a_k-1 > a_k, pak vždy existuje mnohoúhelník s k stranami, jejichž délky jsou a_1, a_2, a_3, ..., a_k.
Obvod mnohoúhelníku je součet délek jeho stran.
Vraťte největší možný obvod mnohoúhelníku, jehož strany lze vytvořit z nums, nebo -1, pokud není možné vytvořit mnohoúhelník.

Příklad 1:

Vstup: nums = [5,5,5]
Výstup: 15
Vysvětlení: Jediný možný mnohoúhelník, který lze vytvořit z nums, má 3 strany: 5, 5 a 5. Obvod je 5 + 5 + 5 = 15.

Příklad 2:

Vstup: nums = [1,12,1,2,5,50,3]
Výstup: 12
Vysvětlení: Mnohoúhelník s největším možným obvodem, který lze vytvořit z nums, má 5 stran: 1, 1, 2, 3 a 5. Obvod je 1 + 1 + 2 + 3 + 5 = 12.
Není možné mít mnohoúhelník s 12 nebo 50 jako nejdelší stranou, protože není možné zahrnout 2 nebo více menších stran, které by měly větší součet než kterákoli z nich.
Lze ukázat, že největší možný obvod je 12.

Příklad 3:

Vstup: nums = [5,5,50]
Výstup: -1
Vysvětlení: Neexistuje žádný možný způsob, jak vytvořit mnohoúhelník z nums, protože mnohoúhelník má alespoň 3 strany a 50 > 5 + 5.

Omezení:

3 <= n <= 10^5
1 <= nums[i] <= 10^9

Dostanete pole kladných celých čísel délky n.
Mnohoúhelník je uzavřený rovinný obrazec, který má alespoň 3 strany. Nejdelší strana mnohoúhelníku je menší než součet jeho ostatních stran.
Naopak, pokud máte k (k >= 3) kladných reálných čísel a_1, a_2, a_3, ..., a_k, kde a_1 <= a_2 <= a_3 <= ... <= a_k a a_1 + a_2 + a_3 + . .. + a_k-1 > a_k, pak vždy existuje mnohoúhelník s k stranami, jejichž délky jsou a_1, a_2, a_3, ..., a_k.
Obvod mnohoúhelníku je součtem délek jeho stran.
Vraťte největší možný obvod mnohoúhelníku, jehož strany lze vytvořit z čísel, nebo -1, pokud není možné vytvořit mnohoúhelník.

Příklad 1:

Vstup: nums = [5,5,5]
Výstup: 15
Vysvětlení: Jediný možný mnohoúhelník, který lze vytvořit z čísel, má 3 strany: 5, 5 a 5. Obvod je 5 + 5 + 5 = 15.

Příklad 2:

Vstup: nums = [1,12,1,2,5,50,3]
Výstup: 12
Vysvětlení: Mnohoúhelník s největším obvodem, který lze sestavit z čísel, má 5 stran: 1, 1, 2, 3 a 5. Obvod je 1 + 1 + 2 + 3 + 5 = 12.
Nemůžeme mít mnohoúhelník s 12 nebo 50 jako nejdelší stranou, protože není možné zahrnout 2 nebo více menších stran, které mají větší součet než kterákoli z nich.
Lze ukázat, že největší možný obvod je 12.

Příklad 3:

Vstup: nums = [5,5,50]
Výstup: -1
Vysvětlení: Neexistuje žádný možný způsob, jak vytvořit mnohoúhelník z čísel, protože mnohoúhelník má alespoň 3 strany a 50 > 5 + 5.

Omezení:

3 <= n <= 10^5
1 <= nums[i] <= 10^9

Dostanete pole kladných celých čísel o délce n.
Mnohoúhelník je obrazec v uzavřené rovině, který má alespoň 3 strany. Nejdelší strana mnohoúhelníku je menší než součet jeho ostatních stran.
Naopak, pokud máte k (k >= 3) kladných reálných čísel a_1, a_2, a_3, ..., a_k kde a_1 <= a_2 <= a_3 <= ... <= a_k a a_1 + a_2 + a_3 + ... + a_k-1 > a_k, pak vždy existuje mnohoúhelník s k stranami, jejichž délky jsou a_1, a_2, a_3,  ..., a_k.
Obvod mnohoúhelníku je součtem délek jeho stran.
Vrátí největší možný obvod mnohoúhelníku, jehož strany mohou být tvořeny číslicemi, nebo -1, pokud není možné mnohoúhelník vytvořit.

Příklad 1:

Vstup: nums = [5,5,5]
Výstup: 15
Vysvětlení: Jediný možný mnohoúhelník, který lze vytvořit z čísel, má 3 strany: 5, 5 a 5. Obvod je 5 + 5 + 5 = 15.

Příklad 2:

Vstup: nums = [1,12,1,2,5,50,3]
Výstup: 12
Vysvětlení: Mnohoúhelník s největším obvodem, který lze vytvořit z čísel, má 5 stran: 1, 1, 2, 3 a 5. Obvod je 1 + 1 + 2 + 3 + 5 = 12.
Nemůžeme mít mnohoúhelník s 12 nebo 50 jako nejdelší stranou, protože není možné zahrnout 2 nebo více menších stran, které mají větší součet než kterákoli z nich.
Lze si ukázat, že největší možný obvod je 12.

Příklad 3:

Vstup: nums = [5,5,50]
Výstup: -1
Vysvětlení: Neexistuje žádný způsob, jak vytvořit mnohoúhelník z čísel, protože mnohoúhelník má minimálně 3 strany a 50 > 5 + 5.

Omezení:

3 <= n <= 10^5
1 <= nums[i] <= 10^9


Je dáno pole celých čísel n o délce n.
Cena pole je hodnota jeho prvního prvku. Například cena pole [1,2,3] je 1, zatímco cena pole [3,4,1] je 3.
Je třeba rozdělit čísla nums na 3 nesouvislá sousedící dílčí pole.
Vraťte minimální možný součet nákladů těchto dílčích polí.

Příklad 1:

Vstup: nums = [1,2,3,12]
Výstup: 6
Vysvětlení: Nejlepší možný způsob vytvoření 3 dílčích polí je: [1], [2] a [3,12] s celkovými náklady 1 + 2 + 3 = 6.
Další možné způsoby vytvoření 3 dílčích polí jsou:
- [1], [2,3] a [12] s celkovými náklady 1 + 2 + 12 = 15.
- [1,2], [3] a [12] s celkovými náklady 1 + 3 + 12 = 16.

Příklad 2:

Vstup: nums = [5,4,3]
Výstup: 12
Vysvětlení: Nejlepší možný způsob vytvoření 3 dílčích polí je: [5], [4] a [3] s celkovými náklady 5 + 4 + 3 = 12.
Lze ukázat, že 12 je minimální dosažitelná cena.

Příklad 3:

Vstup: nums = [10,3,1,1]
Výstup: 12
Vysvětlení: Nejlepší možný způsob vytvoření 3 dílčích polí je: [10,3], [1] a [1] s celkovými náklady 10 + 1 + 1 = 12.
Můžeme dokázat, že 12 je minimální dosažitelná cena.

Omezení:

3 <= n <= 50
1 <= nums[i] <= 50

Dostanete pole celých čísel a čísel délky n.
Cena pole je hodnota jeho prvního prvku. Například náklady na [1,2,3] jsou 1, zatímco náklady na [3,4,1] jsou 3.
Musíte rozdělit numy do 3 nesouvislých souvislých podpolí.
Vraťte minimální možný součet nákladů těchto podpolí.

Příklad 1:

Vstup: nums = [1,2,3,12]
Výstup: 6
Vysvětlení: Nejlepší možný způsob, jak vytvořit 3 podpole, je: [1], [2] a [3,12] s celkovými náklady 1 + 2 + 3 = 6.
Další možné způsoby, jak vytvořit 3 podpole, jsou:
- [1], [2,3] a [12] za celkové náklady 1 + 2 + 12 = 15.
- [1,2], [3] a [12] za celkové náklady 1 + 3 + 12 = 16.

Příklad 2:

Vstup: nums = [5,4,3]
Výstup: 12
Vysvětlení: Nejlepší možný způsob, jak vytvořit 3 podpole, je: [5], [4] a [3] s celkovými náklady 5 + 4 + 3 = 12.
Lze prokázat, že 12 jsou minimální dosažitelné náklady.

Příklad 3:

Vstup: nums = [10,3,1,1]
Výstup: 12
Vysvětlení: Nejlepší možný způsob, jak vytvořit 3 podpole, je: [10,3], [1] a [1] s celkovými náklady 10 + 1 + 1 = 12.
Lze prokázat, že 12 jsou minimální dosažitelné náklady.

Omezení:

3 <= n <= 50
1 <= nums[i] <= 50

Je zadáno pole celých čísel n o délce n.
Cena pole je hodnota jeho prvního prvku. Například cena pole [1,2,3] je 1, zatímco cena pole [3,4,1] je 3.
Je třeba rozdělit čísla nums na 3 nesouvislá sousedící dílčí pole.
Vraťte minimální možný součet nákladů těchto dílčích polí.

Příklad 1:

Vstup: nums = [1,2,3,12]
Výstup: 6
Vysvětlení: Nejlepší možný způsob vytvoření 3 dílčích polí je: [1], [2] a [3,12] s celkovými náklady 1 + 2 + 3 = 6.
Další možné způsoby vytvoření 3 dílčích polí jsou:
- [1], [2,3] a [12] s celkovými náklady 1 + 2 + 12 = 15.
- [1,2], [3] a [12] s celkovými náklady 1 + 3 + 12 = 16.

Příklad 2:

Vstup: nums = [5,4,3]
Výstup: 12
Vysvětlení: Nejlepší možný způsob vytvoření 3 dílčích polí je: [5], [4] a [3] s celkovými náklady 5 + 4 + 3 = 12.
Lze ukázat, že 12 je minimální dosažitelná cena.

Příklad 3:

Vstup: nums = [10,3,1,1]
Výstup: 12
Vysvětlení: Nejlepší možný způsob vytvoření 3 dílčích polí je: [10,3], [1] a [1] s celkovými náklady 10 + 1 + 1 = 12.
Lze ukázat, že 12 je minimální dosažitelná cena.

Omezení:

3 <= n <= 50
1 <= nums[i] <= 50


Dostanete pole čísel délky n a kladné celé číslo k.
Podpole nums se nazývá dobré, pokud absolutní rozdíl mezi jeho prvním a posledním prvkem je přesně k, jinými slovy, podpole nums[i..j] je dobré, když |nums[i] - nums[j]| == k.
Vraťte maximální součet dobrého dílčího pole čísel. Pokud neexistují žádné dobré podpole, vraťte 0.

Příklad 1:

Vstup: nums = [1,2,3,4,5,6], k = 1
Výstup: 11
Vysvětlení: Absolutní rozdíl mezi prvním a posledním prvkem musí být 1 pro dobré podpole. Všechna dobrá podpole jsou: [1,2], [2,3], [3,4], [4,5] a [5,6]. Maximální součet dílčího pole je 11 pro dílčí pole [5,6].

Příklad 2:

Vstup: nums = [-1,3,2,4,5], k = 3
Výstup: 11
Vysvětlení: Absolutní rozdíl mezi prvním a posledním prvkem musí být 3 pro dobré podpole. Všechna dobrá podpole jsou: [-1,3,2] a [2,4,5]. Maximální součet dílčího pole je 11 pro dílčí pole [2,4,5].

Příklad 3:

Vstup: nums = [-1,-2,-3,-4], k = 2
Výstup: -6
Vysvětlení: Absolutní rozdíl mezi prvním a posledním prvkem musí být 2 pro dobré podpole. Všechna dobrá podpole jsou: [-1,-2,-3] a [-2,-3,-4]. Maximální součet dílčího pole je -6 pro dílčí pole [-1,-2,-3].

Omezení:

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

Jste dostali pole nums délky n a kladné celé číslo k.
Podpole pole nums se nazývá dobré, pokud absolutní rozdíl mezi jeho prvním a posledním prvkem je přesně k, jinými slovy, podpole nums[i..j] je dobré, pokud |nums[i] - nums[j]| == k.
Vraťte maximální součet dobrého podpole nums. Pokud neexistují žádná dobrá podpole, vraťte 0.

Příklad 1:

Vstup: nums = [1,2,3,4,5,6], k = 1
Výstup: 11
Vysvětlení: Absolutní rozdíl mezi prvním a posledním prvkem musí být 1 pro dobré podpole. Všechna dobrá podpole jsou: [1,2], [2,3], [3,4], [4,5], a [5,6]. Maximální součet podpole je 11 pro podpole [5,6].

Příklad 2:

Vstup: nums = [-1,3,2,4,5], k = 3
Výstup: 11
Vysvětlení: Absolutní rozdíl mezi prvním a posledním prvkem musí být 3 pro dobré podpole. Všechna dobrá podpole jsou: [-1,3,2], a [2,4,5]. Maximální součet podpole je 11 pro podpole [2,4,5].

Příklad 3:

Vstup: nums = [-1,-2,-3,-4], k = 2
Výstup: -6
Vysvětlení: Absolutní rozdíl mezi prvním a posledním prvkem musí být 2 pro dobré podpole. Všechna dobrá podpole jsou: [-1,-2,-3], a [-2,-3,-4]. Maximální součet podpole je -6 pro podpole [-1,-2,-3].

Omezení:

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


Dostanete řetězec s, který se skládá z malých anglických písmen.
Řetězec se nazývá speciální, pokud je tvořen pouze jedním znakem. Například řetězec "abc" není speciální, zatímco řetězce "ddd", "zz" a "f" jsou speciální.
Vrátí délku nejdelšího speciálního podřetězce s, který se vyskytuje alespoň třikrát, nebo -1, pokud se žádný speciální podřetězec nevyskytuje alespoň třikrát.
Podřetězec je souvislá neprázdná sekvence znaků v řetězci.

Příklad 1:

Vstup: s = "aaaa"
Výstup: 2
Vysvětlení: Nejdelší speciální podřetězec, který se vyskytuje třikrát, je "aa": podřetězce "aaaa", "aaaa" a "aaaa".
Lze ukázat, že maximální dosažitelná délka je 2.

Příklad 2:

Vstup: s = "abcdef"
Výstup: -1
Vysvětlení: Neexistuje žádný speciální podřetězec, který se vyskytuje alespoň třikrát. Proto návrat -1.

Příklad 3:

Vstup: s = "abcaba"
Výstup: 1
Vysvětlení: Nejdelší speciální podřetězec, který se vyskytuje třikrát, je "a": podřetězce "abcaba", "abcaba" a "abcaba".
Lze ukázat, že maximální dosažitelná délka je 1.

Omezení:

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

Dostanete řetězec s který se skládá z malých anglických písmen.
Řetězec se nazývá speciální, pokud je tvořen pouze jedním znakem. Například řetězec "abc" není speciální, zatímco řetězce "ddd", "zz" a "f" jsou speciální.
Vrátí délku nejdelšího speciálního podřetězce s který se vyskytuje alespoň třikrát, nebo -1 pokud se žádný speciální podřetězec nevyskytuje alespoň třikrát.
Podřetězec je souvislá neprázdná sekvence znaků v řetězci.

Příklad 1:

Vstup: s = "aaaa"
Výstup: 2
Vysvětlení: Nejdelší speciální podřetězec, který se vyskytuje třikrát, je "aa": podřetězce "aaaa", "aaaa" a "aaaa".
Lze ukázat, že maximální dosažitelná délka je 2.

Příklad 2:

Vstup: s = "abcdef"
Výstup: -1
Vysvětlení: Neexistuje žádný speciální podřetězec, který se vyskytuje alespoň třikrát. Proto návrat -1.

Příklad 3:

Vstup: s = "abcaba"
Výstup: 1
Vysvětlení: Nejdelší speciální podřetězec, který se vyskytuje třikrát, je "a": podřetězce "abcaba", "abcaba" a "abcaba".
Lze ukázat, že maximální dosažitelná délka je 1.

Omezení:

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

Máte daný řetězec s, který se skládá z malých anglických písmen.
Řetězec je nazýván speciálním, pokud je tvořen pouze jediným znakem. Například řetězec "abc" není speciální, zatímco řetězce "ddd", "zz" a "f" jsou speciální.
Vrátí délku nejdelšího speciálního podřetězce v s, který se vyskytuje alespoň třikrát, nebo -1, pokud žádný speciální podřetězec se nevyskytuje alespoň třikrát.
Podřetězec je souvislá neprázdná sekvence znaků v rámci řetězce.

Příklad 1:

Vstup: s = "aaaa"
Výstup: 2
Vysvětlení: Nejdelší speciální podřetězec, který se vyskytuje třikrát, je "aa": podřetězce "aaaa", "aaaa" a "aaaa".
Lze ukázat, že maximální dosažitelná délka je 2.

Příklad 2:

Vstup: s = "abcdef"
Výstup: -1
Vysvětlení: Neexistuje žádný speciální podřetězec, který by se vyskytoval alespoň třikrát. Proto vrátí -1.

Příklad 3:

Vstup: s = "abcaba"
Výstup: 1
Vysvětlení: Nejdelší speciální podřetězec, který se vyskytuje třikrát, je "a": podřetězce "abcaba", "abcaba" a "abcaba".
Lze ukázat, že maximální dosažitelná délka je 1.

Omezení:

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


Je dáno 0-indexované celočíselné pole nums o velikosti n a 0-indexované celočíselné pole pattern o velikosti m, které se skládá z celých čísel -1, 0 a 1.
Řekneme, že dílčí pole nums[i..j] o velikosti m + 1 odpovídá vzoru, pokud pro každý prvek vzor[k] platí následující podmínky:

nums[i + k + 1] > nums[i + k] if pattern[k] == 1.
nums[i + k + 1] == nums[i + k], jestliže pattern[k] == 0.
nums[i + k + 1] < nums[i + k] if pattern[k] == -1.

Vraťte počet dílčích polí v nums, která odpovídají vzoru.

Příklad 1:

Vstup: nums = [1,2,3,4,5,6], pattern = [1,1].
Výstup: 4
Vysvětlení: Vzor [1,1] naznačuje, že hledáme striktně rostoucí dílčí pole o velikosti 3. V poli nums odpovídají tomuto vzoru podpole [1,2,3], [2,3,4], [3,4,5] a [4,5,6].
V poli nums jsou tedy 4 podpole, která odpovídají vzoru.

Příklad 2:

Vstup: nums = [1,4,4,1,3,5,5,3], vzor = [1,0,-1].
Výstup: 2
Vysvětlení: Zde vzor [1,0,-1] znamená, že hledáme posloupnost, kde první číslo je menší než druhé, druhé je rovno třetímu a třetí je větší než čtvrté. V poli nums odpovídají tomuto vzoru dílčí pole [1,4,4,1] a [3,5,5,3].
V poli nums jsou tedy 2 podpole, která odpovídají tomuto vzoru.

Omezení:

2 <= n == nums.length <= 100
1 <= nums[i] <= 10^9
1 <= m == pattern.length < n
-1 <= vzor[i] <= 1

Máte dáno celé číslo pole `nums` s 0-indexem o velikosti `n` a celé číslo pole `pattern` s 0-indexem o velikosti `m`, které se skládá z celých čísel -1, 0 a 1. Podpole `nums[i..j]` o velikosti `m + 1` se říká, že odpovídá vzoru, pokud následující podmínky platí pro každý prvek `pattern[k]`:

`nums[i + k + 1] > nums[i + k]`, pokud `pattern[k] == 1`.
`nums[i + k + 1] == nums[i + k]`, pokud `pattern[k] == 0`.
`nums[i + k + 1] < nums[i + k]`, pokud `pattern[k] == -1`.

Vrátit počet podpolí v `nums`, která odpovídají vzoru.

Příklad 1:

Vstup: `nums = [1,2,3,4,5,6]`, `pattern = [1,1]`
Výstup: `4`
Vysvětlení: Vzor `[1,1]` naznačuje, že hledáme striktne vzrůstající podpole o velikosti 3. V poli `nums` podpole `[1,2,3]`, `[2,3,4]`, `[3,4,5]` a `[4,5,6]` odpovídají tomuto vzoru.
Proto jsou zde 4 podpole v `nums`, která odpovídají vzoru.

Příklad 2:

Vstup: `nums = [1,4,4,1,3,5,5,3]`, `pattern = [1,0,-1]`
Výstup: `2`
Vysvětlení: Zde vzor `[1,0,-1]` naznačuje, že hledáme sekvenci, kde první číslo je menší než druhé, druhé je rovné třetímu a třetí je větší než čtvrté. V poli `nums` podpole `[1,4,4,1]` a `[3,5,5,3]` odpovídají tomuto vzoru.
Proto jsou zde 2 podpole v `nums`, která odpovídají vzoru.

Omezení:

2 <= n == `nums.length` <= 100
1 <= `nums[i]` <= 10^9
1 <= m == `pattern.length` < n
-1 <= `pattern[i]` <= 1

Dostanete 0-indexované celočíselné pole s čísly velikosti n a 0-indexované celočíselné pole o velikosti m sestávající z celých čísel -1, 0 a 1.
Říká se, že podpole nums[i..j] o velikosti m + 1 odpovídá vzoru, pokud pro každý vzor prvku[k] platí následující podmínky:

nums[i + k + 1] > nums[i + k], pokud vzor[k] == 1.
nums[i + k + 1] == nums[i + k], pokud vzor[k] == 0.
nums[i + k + 1] < nums[i + k], pokud vzor[k] == -1.

Vraťte počet podpolí v poli, která odpovídají vzoru.

Příklad 1:

Vstup: nums = [1,2,3,4,5,6], vzor = [1,1]
Výstup: 4
Vysvětlení: Vzor [1,1] naznačuje, že hledáme přísně rostoucí podpole o velikosti 3. V poli nums jsou podpole [1,2,3], [2,3,4], [3,4, 5] a [4,5,6] odpovídají tomuto vzoru.
Existují tedy 4 podpole v poli, která odpovídají vzoru.

Příklad 2:

Vstup: nums = [1,4,4,1,3,5,5,3], vzor = [1,0,-1]
Výstup: 2
Vysvětlení: Vzor [1,0,-1] zde naznačuje, že hledáme posloupnost, kde první číslo je menší než druhé, druhé se rovná třetímu a třetí je větší než čtvrté. V poli nums odpovídají podpole [1,4,4,1] a [3,5,5,3] tomuto vzoru.
Proto existují 2 podpole v počtech, které odpovídají vzoru.

Omezení:

2 <= n == délka pole čísel <= 100
1 <= nums[i] <= 10^9
1 <= m == délka vzoru < n
-1 <= vzor[i] <= 1


Alice a Bob hrají tahovou hru na kruhovém poli obklopeném květinami. Kruh představuje pole a mezi Alicí a Bobem je x květin ve směru hodinových ručiček a y květin v protisměru hodinových ručiček.
Hra probíhá následovně:

Alice začíná první tah.
V každém tahu si hráč musí vybrat buď směr hodinových ručiček, nebo protisměr hodinových ručiček a vzít jednu květinu z této strany.
Na konci tahu, pokud nezůstane žádná květina, aktuální hráč zajme svého soupeře a vyhraje hru.

Dáno dvěma celými čísly, n a m, úkolem je spočítat počet možných dvojic (x, y), které splňují podmínky:

Alice musí vyhrát hru podle popsaných pravidel.
Počet květin x ve směru hodinových ručiček musí být v rozmezí [1,n].
Počet květin y v protisměru hodinových ručiček musí být v rozmezí [1,m].

Vrátit počet možných dvojic (x, y), které splňují podmínky uvedené v zadání.

Příklad 1:

Vstup: n = 3, m = 2
Výstup: 3
Vysvětlení: Následující dvojice splňují podmínky popsané v zadání: (1,2), (3,2), (2,1).

Příklad 2:

Vstup: n = 1, m = 1
Výstup: 0
Vysvětlení: Žádné dvojice nesplňují podmínky popsané v zadání.

Omezení:
1 <= n, m <= 10^5

Alice a Bob hrají tahovou hru na kruhovém poli obklopeném květinami. Kruh představuje pole a mezi Alicí a Bobem je x květin ve směru hodinových ručiček a y květin proti směru hodinových ručiček.
Hra probíhá následujícím způsobem:

První tah provede Alice.
V každém tahu si hráč musí zvolit buď směr, po kterém se pohybuje ve směru hodinových ručiček, nebo směr, po kterém se pohybuje proti směru hodinových ručiček, a vybrat jednu květinu z této strany.
Pokud na konci tahu nezbývají vůbec žádné květiny, aktuální hráč chytí svého soupeře a vyhrává hru.

Jsou dána dvě celá čísla, n a m, a úkolem je vypočítat počet možných dvojic (x, y), které splňují podmínky:

Alice musí vyhrát hru podle popsaných pravidel.
Počet květů x ve směru hodinových ručiček musí být v intervalu [1,n].
Počet květů y ve směru proti směru hodinových ručiček musí být v rozsahu [1,m].

Vraťte počet možných dvojic (x, y), které splňují podmínky uvedené v příkazu.

Příklad 1:

Vstup: n = 3, m = 2
Výstup: 3
Vysvětlení: Následující dvojice splňují podmínky popsané ve výroku: (1,2), (3,2), (2,1).

Příklad 2:

Vstup: n = 1, m = 1
Výstup: 0
Vysvětlení: Žádná dvojice nesplňuje podmínky popsané v příkazu.

Omezení:

1 <= n, m <= 10^5

Alice a Bob hrají tahovou hru na kruhovém hřišti obklopeném květinami. Kruh představuje pole a mezi Alicí a Bobem je x květin ve směru hodinových ručiček a mezi nimi y květin proti směru hodinových ručiček.
Hra probíhá následovně:

Alice je na tahu jako první.
V každém tahu si hráč musí vybrat buď ve směru nebo proti směru hodinových ručiček a vybrat si jednu květinu z této strany.
Na konci tahu, pokud nezbyly vůbec žádné květiny, aktuální hráč zajme svého soupeře a vyhrává hru.

Pro dvě celá čísla, n a m, je úkolem spočítat počet možných párů (x, y), které splňují podmínky:

Alice musí vyhrát hru podle popsaných pravidel.
Počet květů x ve směru hodinových ručiček musí být v rozsahu [1,n].
Počet květů y proti směru hodinových ručiček musí být v rozmezí [1,m].

Vrací počet možných párů (x, y), které splňují podmínky uvedené v příkazu.

Příklad 1:

Vstup: n = 3, m = 2
Výstup: 3
Vysvětlení: Následující páry splňují podmínky popsané ve výroku: (1,2), (3,2), (2,1).

Příklad 2:

Vstup: n = 1, m = 1
Výstup: 0
Vysvětlení: Žádné páry nesplňují podmínky popsané v příkazu.

Omezení:

1 <= n, m <= 10^5


Máte dáno pole kladných celých čísel nums indexované od nuly.
V jedné operaci můžete zaměnit dvě sousední prvky, pokud mají stejný počet nastavených bitů. Tuto operaci můžete provést libovolněkrát (včetně nuly).
Vraťte true, pokud můžete pole seřadit, jinak vraťte false.

Příklad 1:

Vstup: nums = [8,4,2,30,15]
Výstup: true
Vysvětlení: Podívejme se na binární reprezentaci každého prvku. Čísla 2, 4 a 8 mají každý jeden nastavený bit s binární reprezentací "10", "100" a "1000". Čísla 15 a 30 mají každý čtyři nastavené bity s binární reprezentací "1111" a "11110".
Pole můžeme seřadit pomocí 4 operací:
- Zaměňte nums[0] s nums[1]. Tato operace je platná, protože 8 a 4 mají každý jeden nastavený bit. Pole se stane [4,8,2,30,15].
- Zaměňte nums[1] s nums[2]. Tato operace je platná, protože 8 a 2 mají každý jeden nastavený bit. Pole se stane [4,2,8,30,15].
- Zaměňte nums[0] s nums[1]. Tato operace je platná, protože 4 a 2 mají každý jeden nastavený bit. Pole se stane [2,4,8,30,15].
- Zaměňte nums[3] s nums[4]. Tato operace je platná, protože 30 a 15 mají každý čtyři nastavené bity. Pole se stane [2,4,8,15,30].
Pole se seřadilo, proto vrátíme true.
Všimněte si, že může existovat i jiná posloupnost operací, která také seřadí pole.

Příklad 2:

Vstup: nums = [1,2,3,4,5]
Výstup: true
Vysvětlení: Pole je již seřazené, proto vrátíme true.

Příklad 3:

Vstup: nums = [3,16,8,4,2]
Výstup: false
Vysvětlení: Lze ukázat, že není možné seřadit vstupní pole pomocí libovolného počtu operací.

Omezení:

1 <= nums.length <= 100
1 <= nums[i] <= 2^8

Dostanete 0-indexované pole kladných celých čísel nums.
V jedné operaci můžete zaměnit libovolné dva sousední prvky, pokud mají stejný počet nastavených bitů. Tuto operaci můžete provést libovolný počet opakování (včetně nuly).
Vraťte true, pokud můžete pole seřadit, jinak vraťte false.

Příklad 1:

Vstup: nums = [8,4,2,30,15]
Výstup: pravda
Vysvětlení: Podívejme se na binární reprezentaci každého prvku. Čísla 2, 4 a 8 mají každý jeden nastavený bit s binární reprezentací "10", "100" a "1000". Čísla 15 a 30 mají čtyři nastavené bity, každé s binární reprezentací "1111" a "11110".
Pole můžeme seřadit pomocí 4 operací:
- Zaměňte čísla[0] za čísla[1]. Tato operace je platná, protože 8 a 4 mají každý nastavený bit. Pole se změní na [4,8,2,30,15].
- Zaměňte čísla[1] za čísla[2]. Tato operace je platná, protože 8 a 2 mají každý nastavený bit. Pole se změní na [4,2,8,30,15].
- Zaměňte čísla[0] za čísla[1]. Tato operace je platná, protože 4 a 2 mají každý nastavený bit. Pole se změní na [2,4,8,30,15].
- Zaměňte čísla[3] za čísla[4]. Tato operace je platná, protože 30 a 15 mají každý nastaveny čtyři bity. Pole se změní na [2,4,8,15,30].
Pole bylo seřazeno, proto vracíme true.
Všimněte si, že mohou existovat další sekvence operací, které také třídí pole.

Příklad 2:

Vstup: nums = [1,2,3,4,5]
Výstup: pravda
Vysvětlení: Pole je již seřazeno, proto vracíme hodnotu true.

Příklad 3:

Vstup: nums = [3,16,8,4,2]
Výstup: nepravda
Vysvětlení: Lze ukázat, že není možné třídit vstupní pole pomocí libovolného počtu operací.

Omezení:

1 <= nums.length <= 100
1 <= nums[i] <= 2^8

Dostanete 0-indexované pole kladných celých čísel.
V jedné operaci můžete prohodit libovolné dva sousední elementy, pokud mají stejný počet nastavených bitů. Tuto operaci můžete provést libovolněkrát (včetně nuly).
Vrátí true, pokud můžete pole seřadit, jinak vrátí false.

Příklad 1:

Vstup: nums = [8,4,2,30,15]
Výstup: true
Vysvětlení: Podívejme se na binární reprezentaci každého prvku. Čísla 2, 4 a 8 mají po jednom bitu s binárním vyjádřením "10", "100" a "1000". Čísla 15 a 30 mají čtyři bity s binárním vyjádřením "1111" a "11110".
Pole můžeme seřadit pomocí 4 operací:
- Zaměňte nums[0] za nums[1]. Tato operace je platná, protože 8 a 4 mají po jednom set bitu. Z pole se stane [4,8,2,30,15].
- Zaměňte nums [1] za nums [2]. Tato operace je platná, protože 8 a 2 mají po jednom set bitu. Z pole se stane [4,2,8,30,15].
- Zaměňte nums[0] za nums[1]. Tato operace je platná, protože 4 a 2 mají po jednom nastaveném bitu. Pole se změní na [2,4,8,30,15].
- Zaměňte nums [3] za nums [4]. Tato operace je platná, protože 30 a 15 mají po čtyřech nastavených bitech. Pole se změní na [2,4,8,15,30].
Pole se seřadilo, proto vrátíme hodnotu true.
Všimněte si, že mohou existovat i jiné sekvence operací, které také třídí pole.

Příklad 2:

Vstup: nums = [1,2,3,4,5]
Výstup: true
Vysvětlení: Pole je již seřazeno, proto vracíme true.

Příklad 3:

Vstup: nums = [3,16,8,4,2]
Výstup: false
Vysvětlení: Lze ukázat, že není možné třídit vstupní pole pomocí libovolného počtu operací.

Omezení:

1 <= nums.length <= 100
1 <= nums[i] <= 2^8


Jsou zadána dvě 1-indexovaná celočíselná pole, nums a changeIndices, o délkách n a m.
Zpočátku jsou všechny indexy v nums neoznačené. Vaším úkolem je označit všechny indexy v nums.
V každé sekundě s v pořadí od 1 do m (včetně) můžete provést jednu z následujících operací:

Zvolte index i v rozsahu [1, n] a snižte hodnotu nums[i] o 1.
Pokud je nums[changeIndices[s]] rovno 0, označte index changeIndices[s].
Nedělejte nic.

Vraťte celé číslo označující nejbližší vteřinu v rozsahu [1, m], pokud lze všechny indexy v nums označit optimální volbou operací, nebo -1, pokud to není možné.

Příklad 1:

Vstup: nums = [2,2,0], changeIndices = [2,2,2,2,2,3,2,2,1].
Výstup: 8
Vysvětlení: V tomto příkladu máme 8 sekund. Pro označení všech indexů lze provést následující operace:
1: Zvolte index 1 a snižte nums[1] o jedničku. nums se stane [1,2,0].
Sekunda 2: Zvolte index 1 a dekrementujte nums[1] o jedničku. nums se stane [0,2,0].
Sekunda 3: Zvolte index 2 a dekrementujte nums[2] o jedničku. nums se stane [0,1,0].
Sekunda 4: Zvolte index 2 a dekrementujte nums[2] o jedničku. nums se stane [0,0,0].
Sekunda 5: Označte index changeIndices[5], což označuje index 3, protože nums[3] je rovno 0.
Sekunda 6: Označte index changeIndices[6], který označuje index 2, protože nums[2] je rovno 0.
Sekunda 7: Nedělejte nic.
Sekunda 8: Označte index changeIndices[8], který označuje index 1, protože nums[1] je rovno 0.
Nyní jsou označeny všechny indexy.
Lze ukázat, že všechny indexy nelze označit dříve než v 8. sekundě.
Proto je odpověď 8.

Příklad 2:

Vstup: nums = [1,3], changeIndices = [1,1,1,2,1,1,1].
Výstup: 6
Vysvětlení: V tomto příkladu máme 7 sekund. Pro označení všech indexů lze provést následující operace:
1: Zvolte index 2 a snižte nums[2] o jedničku. nums se stane [1,2].
Sekunda 2: Zvolte index 2 a dekrementujte nums[2] o jedničku. nums se stane [1,1].
Sekunda 3: Zvolte index 2 a dekrementujte nums[2] o jedničku. nums se stane [1,0].
Sekunda 4: Označte index changeIndices[4], což je označení indexu 2, protože nums[2] je rovno 0.
Sekunda 5: Zvolte index 1 a dekrementujte nums[1] o jedničku. nums se stane [0,0].
Sekunda 6: Označte index changeIndices[6], což je označení indexu 1, protože nums[1] je rovno 0.
Nyní jsou označeny všechny indexy.
Lze ukázat, že není možné označit všechny indexy dříve než v 6. sekundě.
Proto je odpověď 6.

Příklad 3:

Vstup: nums = [0,1], changeIndices = [2,2,2]
Výstup: -1
Vysvětlení: V tomto příkladu není možné označit všechny indexy, protože index 1 není v changeIndices.
Proto je odpovědí -1.

Omezení:

1 <= n == nums.length <= 2000
0 <= nums[i] <= 10^9
1 <= m == changeIndices.length <= 2000
1 <= changeIndices[i] <= n

Je dáno že dvě pole celých čísel indexovaná od 1, nums a changeIndices, s délkami n a m, respektive.
Na začátku jsou všechny indexy v nums neznačené. Vaším úkolem je označit všechny indexy v nums.
Každou sekundu s, v pořadí od 1 do m (včetně), můžete provést jednu z následujících operací:

Vybrat index i v rozsahu [1, n] a dekrementovat nums[i] o 1.
Pokud nums[changeIndices[s]] je rovno 0, označit index changeIndices[s].
Nedělat nic.

Vraťte celé číslo, které označuje nejbližší sekundu v rozsahu [1, m], kdy všechny indexy v nums mohou být označeny optimálním výběrem operací, nebo -1, pokud to není možné.

Příklad 1:

Vstup: nums = [2,2,0], changeIndices = [2,2,2,2,3,2,2,1]
Výstup: 8
Vysvětlení: V tomto příkladu máme 8 sekund. Mohou být provedeny následující operace, aby se označily všechny indexy:
Sekunda 1: Vybrat index 1 a dekrementovat nums[1] o jednu. nums se stane [1,2,0].
Sekunda 2: Vybrat index 1 a dekrementovat nums[1] o jednu. nums se stane [0,2,0].
Sekunda 3: Vybrat index 2 a dekrementovat nums[2] o jednu. nums se stane [0,1,0].
Sekunda 4: Vybrat index 2 a dekrementovat nums[2] o jednu. nums se stane [0,0,0].
Sekunda 5: Označit index changeIndices[5], což je označení indexu 3, protože nums[3] je rovno 0.
Sekunda 6: Označit index changeIndices[6], což je označení indexu 2, protože nums[2] je rovno 0.
Sekunda 7: Nedělat nic.
Sekunda 8: Označit index changeIndices[8], což je označení indexu 1, protože nums[1] je rovno 0.
Nyní jsou všechny indexy označeny.
Lze ukázat, že není možné označit všechny indexy dříve než v 8. sekundě.
Proto je odpověď 8.

Příklad 2:

Vstup: nums = [1,3], changeIndices = [1,1,1,2,1,1,1]
Výstup: 6
Vysvětlení: V tomto příkladu máme 7 sekund. Mohou být provedeny následující operace, aby se označily všechny indexy:
Sekunda 1: Vybrat index 2 a dekrementovat nums[2] o jednu. nums se stane [1,2].
Sekunda 2: Vybrat index 2 a dekrementovat nums[2] o jednu. nums se stane [1,1].
Sekunda 3: Vybrat index 2 a dekrementovat nums[2] o jednu. nums se stane [1,0].
Sekunda 4: Označit index changeIndices[4], což je označení indexu 2, protože nums[2] je rovno 0.
Sekunda 5: Vybrat index 1 a dekrementovat nums[1] o jednu. nums se stane [0,0].
Sekunda 6: Označit index changeIndices[6], což je označení indexu 1, protože nums[1] je rovno 0.
Nyní jsou všechny indexy označeny.
Lze ukázat, že není možné označit všechny indexy dříve než v 6. sekundě.
Proto je odpověď 6.

Příklad 3:

Vstup: nums = [0,1], changeIndices = [2,2,2]
Výstup: -1
Vysvětlení: V tomto příkladu není možné označit všechny indexy, protože index 1 není v changeIndices.
Proto je odpověď -1.

Omezení:

1 <= n == nums.length <= 2000
0 <= nums[i] <= 10^9
1 <= m == changeIndices.length <= 2000
1 <= changeIndices[i] <= n

Jsou zadána dvě 1-indexovaná celočíselná pole nums a changeIndices o délkách n a m.
Zpočátku jsou všechny indexy v nums neoznačené. Vaším úkolem je označit všechny indexy v nums.
V každé sekundě s v pořadí od 1 do m (včetně) můžete provést jednu z následujících operací:

Zvolte index i v rozsahu [1, n] a dekrementujte nums[i] o 1.
Pokud je nums[changeIndices[s]] rovno 0, označte index changeIndices[s].
Nedělejte nic.

Vraťte celé číslo označující nejbližší vteřinu v rozsahu [1, m], pokud lze všechny indexy v nums označit optimální volbou operací, nebo -1, pokud to není možné.

Příklad 1:

Vstup: nums = [2,2,0], changeIndices = [2,2,2,2,2,3,2,2,1].
Výstup: 8
Vysvětlení: V tomto příkladu máme 8 sekund. Pro označení všech indexů lze provést následující operace:
1: Zvolte index 1 a snižte nums[1] o jedničku. nums se stane [1,2,0].
Sekunda 2: Zvolte index 1 a dekrementujte nums[1] o jedničku. nums se stane [0,2,0].
Sekunda 3: Zvolte index 2 a dekrementujte nums[2] o jedničku. z nums se stane [0,1,0].
Sekunda 4: Zvolte index 2 a dekrementujte nums[2] o jedničku. nums se stane [0,0,0].
Sekunda 5: Označte index changeIndices[5], což je označení indexu 3, protože nums[3] je rovno 0.
Sekunda 6: Označte index changeIndices[6], který označuje index 2, protože nums[2] je rovno 0.
Sekunda 7: Nedělejte nic.
Sekunda 8: Označte index changeIndices[8], který označuje index 1, protože nums[1] je rovno 0.
Nyní jsou označeny všechny indexy.
Lze ukázat, že není možné označit všechny indexy dříve než v 8. sekundě.
Proto je odpověď 8.

Příklad 2:

Vstup: nums = [1,3], changeIndices = [1,1,1,2,1,1,1].
Výstup: 6
Vysvětlení: V tomto příkladu máme 7 sekund. Pro označení všech indexů lze provést následující operace:
1: Zvolte index 2 a snižte nums[2] o jedničku. nums se stane [1,2].
Sekunda 2: Zvolte index 2 a dekrementujte nums[2] o jedničku. nums se stane [1,1].
Sekunda 3: Zvolte index 2 a dekrementujte nums[2] o jedničku. nums se stane [1,0].
Sekunda 4: Označte index changeIndices[4], což je označení indexu 2, protože nums[2] je rovno 0.
Sekunda 5: Zvolíme index 1 a dekrementujeme nums[1] o jedničku. nums se stane [0,0].
Sekunda 6: Označte index changeIndices[6], což je označení indexu 1, protože nums[1] je rovno 0.
Nyní jsou označeny všechny indexy.
Lze ukázat, že není možné označit všechny indexy dříve než v 6. sekundě.
Proto je odpověď 6.

Příklad 3:

Vstup: nums = [0,1], changeIndices = [2,2,2]
Výstup: -1
Vysvětlení: V tomto příkladu není možné označit všechny indexy, protože index 1 není v changeIndices.
Proto je odpovědí -1.

Omezení:

1 <= n == nums.length <= 2000
0 <= nums[i] <= 10^9
1 <= m == changeIndices.length <= 2000
1 <= changeIndices[i] <= n


Máte daný řetězec word s indexováním od nuly a celé číslo k.
Každou sekundu musíte provést následující operace:

Odstraňte prvních k znaků z word.
Přidejte libovolné k znaků na konec word.

Všimněte si, že nemusíte přidat stejné znaky, které jste odstranili. Musíte však obě operace provádět každou sekundu.
Vrátí minimální čas větší než nula potřebný k tomu, aby se word vrátil do svého počátečního stavu.

Příklad 1:

Vstup: word = "abacaba", k = 3
Výstup: 2
Vysvětlení: V 1. sekundě odstraníme znaky "aba" z předpony word a přidáme znaky "bac" na konec word. Takže word se stane "cababac".
Ve 2. sekundě odstraníme znaky "cab" z předpony word a přidáme "aba" na konec word. Takže word se stane "abacaba" a vrátí se do svého počátečního stavu.
Lze ukázat, že 2 sekundy jsou minimální čas větší než nula, potřebný k tomu, aby se word vrátil do svého počátečního stavu.

Příklad 2:

Vstup: word = "abacaba", k = 4
Výstup: 1
Vysvětlení: V 1. sekundě odstraníme znaky "abac" z předpony word a přidáme znaky "caba" na konec word. Takže word se stane "abacaba" a vrátí se do svého počátečního stavu.
Lze ukázat, že 1 sekunda je minimální čas větší než nula, potřebný k tomu, aby se word vrátil do svého počátečního stavu.

Příklad 3:

Vstup: word = "abcbabcd", k = 2
Výstup: 4
Vysvětlení: Každou sekundu odstraníme první 2 znaky word a přidáme stejné znaky na konec word.
Po 4 sekundách se word stane "abcbabcd" a vrátí se do svého počátečního stavu.
Lze ukázat, že 4 sekundy jsou minimální čas větší než nula, potřebný k tomu, aby se word vrátil do svého počátečního stavu.

Omezení:

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

Dostanete 0-indexované řetězcové slovo a celé číslo k.
Každou sekundu musíte provést následující operace:

Odstraňte prvních k znaků slova.
Přidejte libovolných k znaků na konec slova.

Všimněte si, že nemusíte nutně přidávat stejné znaky, které jste odebrali. Obě operace však musíte provádět každou sekundu.
Vrátí minimální čas větší než nula potřebný k tomu, aby se slovo vrátilo do původního stavu.

Příklad 1:

Vstup: slovo = "abacaba", k = 3
Výstup: 2
Vysvětlení: V 1. sekundě odstraníme znaky "aba" z předpony slova a přidáme znaky "bac" na konec slova. Slovo se tak rovná „cababac“.
Ve 2. sekundě odstraníme znaky „cab“ z předpony slova a na konec slova přidáme „aba“. Slovo se tedy rovná „abacaba“ a vrátí se do původního stavu.
Je možné ukázat, že 2 sekundy jsou minimální čas větší než nula potřebný k tomu, aby se slovo vrátilo do původního stavu.

Příklad 2:

Vstup: slovo = "abacaba", k = 4
Výstup: 1
Vysvětlení: V 1. sekundě odstraníme znaky "abac" z předpony slova a na konec slova přidáme znaky "caba". Slovo se tak rovná „abacaba“ a vrátí se do původního stavu.
Je možné ukázat, že 1 sekunda je minimální doba větší než nula potřebná k tomu, aby se slovo vrátilo do původního stavu.

Příklad 3:

Vstup: slovo = "abcbabcd", k = 2
Výstup: 4
Vysvětlení: Každou sekundu odstraníme první 2 znaky slova a přidáme stejné znaky na konec slova.
Po 4 sekundách se slovo rovná "abcbabcd" a vrátí se do původního stavu.
Je možné ukázat, že 4 sekundy jsou minimální čas větší než nula potřebný k tomu, aby se slovo vrátilo do původního stavu.

Omezení:

1 <= délka řetězce <= 50
1 <= k <= délka řetězce
slovo se skládá pouze z malých anglických písmen.

Je vám dáno řetězcové slovo indexované 0 a celé číslo k.
Každou sekundu je nutné provést následující operace:

Odstraňte prvních k znaků slova.
Na konec slova přidejte libovolné k znaků.

Všimněte si, že nemusíte nutně přidávat stejné znaky, které jste odstranili. Obě operace je však nutné provádět každou sekundu.
Vrátí minimální dobu delší než nula potřebnou k tomu, aby se aplikace Word vrátila do původního stavu.

Příklad 1:

Vstup: word = "abacaba", k = 3
Výstup: 2
Vysvětlení: V 1. sekundě odstraníme znaky "aba" z předpony slova a přidáme znaky "bac" na konec slova. Tak se slovo rovná "cababac".
Ve 2. sekundě odstraníme znaky "cab" z předpony slova a na konec slova přidáme "aba". Tak se slovo rovná slovu "abacaba" a vrací se do svého původního stavu.
Lze ukázat, že 2 sekundy jsou minimální doba delší než nula potřebná k tomu, aby se slovo vrátilo do původního stavu.

Příklad 2:

Vstup: word = "abacaba", k = 4
Výstup: 1
Vysvětlení: V 1. sekundě odstraníme znaky "abac" z předpony slova a přidáme znaky "caba" na konec slova. Tak se slovo rovná slovu "abacaba" a vrací se do svého původního stavu.
Lze ukázat, že 1 sekunda je minimální doba delší než nula potřebná k tomu, aby se slovo vrátilo do původního stavu.

Příklad 3:

Vstup: word = "abcbabcd", k = 2
Výstup: 4
Vysvětlení: Každou sekundu odstraníme první 2 znaky slova a přidáme stejné znaky na konec slova.
Po 4 sekundách se slovo stane rovným "abcbabcd" a vrátí se do původního stavu.
Lze ukázat, že 4 sekundy jsou minimální doba delší než nula potřebná k tomu, aby se slovo vrátilo do původního stavu.

Omezení:

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


Máte zadané pole `nums` indexované od 0, které se skládá z kladných celých čísel.
Na začátku můžete zvýšit hodnotu libovolného prvku v poli o nejvýše 1.
Poté musíte vybrat jeden nebo více prvků z konečného pole tak, aby tyto prvky byly po seřazení vzestupně po sobě jdoucí. Například prvky [3, 4, 5] jsou po sobě jdoucí, zatímco [3, 4, 6] a [1, 1, 2, 3] nejsou.
Vraťte maximální počet prvků, které můžete vybrat.

Příklad 1:

Vstup: nums = [2,1,5,1,1]
Výstup: 3
Vysvětlení: Můžeme zvýšit prvky na indexech 0 a 3. Výsledné pole je nums = [3,1,5,2,1].
Vybereme prvky [3,1,5,2,1] a seřadíme je, abychom získali [1,2,3], které jsou po sobě jdoucí.
Lze ukázat, že nemůžeme vybrat více než 3 po sobě jdoucí prvky.
Příklad 2:

Vstup: nums = [1,4,7,10]
Výstup: 1
Vysvětlení: Maximální po sobě jdoucí prvky, které můžeme vybrat, jsou 1.

Omezení:

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

Dostanete 0-indexované pole nums skládající se z kladných celých čísel.
Zpočátku můžete zvýšit hodnotu libovolného prvku v poli nejvýše o 1.
Poté musíte vybrat jeden nebo více prvků z konečného pole tak, aby tyto prvky byly po sobě jdoucí, když jsou seřazeny ve vzestupném pořadí. Například prvky [3, 4, 5] jsou po sobě jdoucí, zatímco prvky [3, 4, 6] a [1, 1, 2, 3] nikoli.
Vraťte maximální počet prvků, které můžete vybrat.

Příklad 1:

Vstup: nums = [2,1,5,1,1]
Výstup: 3
Vysvětlení: Můžeme zvětšit prvky na indexech 0 a 3. Výsledné pole je nums = [3,1,5,2,1].
Vybereme prvky [3,1,5,2,1] a seřadíme je, abychom získali [1,2,3], které jsou po sobě jdoucí.
Lze ukázat, že nemůžeme vybrat více než 3 po sobě jdoucí prvky.
Příklad 2:

Vstup: nums = [1,4,7,10]
Výstup: 1
Vysvětlení: Maximální počet po sobě jdoucích prvků, které můžeme vybrat, je 1.

Omezení:

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

Je dáno pole nums s indexem 0, které se skládá z celých kladných čísel.
Zpočátku můžete hodnotu libovolného prvku pole zvýšit nejvýše o 1.
Poté je třeba vybrat jeden nebo více prvků z konečného pole tak, aby tyto prvky šly po sobě při seřazení v rostoucím pořadí. Například prvky [3, 4, 5] jdou za sebou, zatímco prvky [3, 4, 6] a [1, 1, 2, 3] nikoli.
Vraťte maximální počet prvků, které můžete vybrat.

Příklad 1:

Vstup: nums = [2,1,5,1,1]
Výstup: 3
Vysvětlení: Můžeme zvětšit prvky na indexech 0 a 3. Výsledné pole je nums = [3,1,5,2,1].
Vybereme prvky [3,1,5,2,1] a seřadíme je tak, abychom získali [1,2,3], které jdou za sebou.
Lze ukázat, že nemůžeme vybrat více než 3 po sobě jdoucí prvky.
Příklad 2:

Vstup: nums = [1,4,7,10]
Výstup: 1
Vysvětlení: Maximální počet po sobě jdoucích prvků, které můžeme vybrat, je 1.

Omezení:

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


Máte pole kladných celých čísel `nums`.
Musíte vybrat podmnožinu čísel z `nums`, která splňuje následující podmínku:

Můžete umístit vybrané prvky do pole s indexováním od 0 tak, aby následovaly vzor: [x, x^2, x^4, ..., x^k/2, x^k, x^k/2, ..., x^4, x^2, x] (Poznamenejte si, že k může být jakákoli nezáporná mocnina 2). Například, [2, 4, 16, 4, 2] a [3, 9, 3] následují vzor, zatímco [2, 4, 8, 4, 2] ne.

Vrátí maximální počet prvků v podmnožině, která splňuje tyto podmínky.

Příklad 1:

Vstup: nums = [5,4,1,2,2]
Výstup: 3
Vysvětlení: Můžeme vybrat podmnožinu {4,2,2}, kterou můžeme umístit do pole jako [2,4,2], které následuje vzor a 2^2 == 4. Proto je odpověď 3.

Příklad 2:

Vstup: nums = [1,3,2,4]
Výstup: 1
Vysvětlení: Můžeme vybrat podmnožinu {1}, kterou můžeme umístit do pole jako [1], které následuje vzor. Proto je odpověď 1. Všimněte si, že jsme také mohli vybrat podmnožiny {2}, {4} nebo {3}, může existovat více podmnožin, které poskytují stejnou odpověď.

Omezení:

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

Je zadáno pole kladných celých čísel nums.
Je třeba vybrat podmnožinu nums, která splňuje následující podmínku:

Vybrané prvky můžete umístit do pole s indexem 0 tak, že bude mít tvar: [x, x^2, x^4, ..., x^k/2, x^k, x^k/2, ..., x^4, x^2, x] (všimněte si, že k může být libovolná nezáporná mocnina 2). Například [2, 4, 16, 4, 2] a [3, 9, 3] se řídí tímto vzorem, zatímco [2, 4, 8, 4, 2] nikoli.

Vraťte maximální počet prvků v podmnožině, která splňuje tyto podmínky.

Příklad 1:

Vstup: nums = [5,4,1,2,2]
Výstup: 3
Vysvětlení: Můžeme vybrat podmnožinu {4,2,2}, kterou lze umístit do pole jako [2,4,2], což odpovídá vzoru a 2^2 == 4. Proto je odpověď 3.

Příklad 2:

Vstup: nums = [1,3,2,4].
Výstup: 1
Vysvětlení: Můžeme vybrat podmnožinu {1}, kterou lze umístit do pole jako [1], které odpovídá vzoru. Odpověď je tedy 1. Všimněte si, že jsme mohli vybrat také podmnožiny {2}, {4} nebo {3}, může existovat více podmnožin, které poskytují stejnou odpověď.

Omezení:

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

Dostanete pole kladných celých čísel.
Musíte vybrat podmnožinu čísel, která splňuje následující podmínku:

Vybrané prvky můžete umístit do pole s indexem 0 tak, aby odpovídalo vzoru: [x, x^2, x^4, ..., x^k/2, x^k, x^k/2, ..., x^4, x^2, x] (Všimněte si, že k může být jakákoli nezáporná mocnina 2). Například [2, 4, 16, 4, 2] a [3, 9, 3] následují vzor, zatímco [2, 4, 8, 4, 2] nikoli.

Vrátí maximální počet prvků v podmnožině, která splňuje tyto podmínky.

Příklad 1:

Vstup: nums = [5,4,1,2,2]
Výstup: 3
Vysvětlení: Můžeme vybrat podmnožinu {4,2,2}, kterou lze umístit do pole jako [2,4,2] podle vzoru a 2^2 == 4. Odpověď je tedy 3.

Příklad 2:

Vstup: nums = [1,3,2,4]
Výstup: 1
Vysvětlení: Můžeme vybrat podmnožinu {1}, kterou lze umístit do pole jako [1] podle vzoru. Odpověď je tedy 1. Všimněte si, že jsme mohli vybrat také podmnožiny {2}, {4} nebo {3}, může existovat více podmnožin, které poskytují stejnou odpověď.

Omezení:

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


Je vám dán řetězec s.
Zvažte provedení následující operace, dokud se s nevyprázdní:

U každého znaku abecedy od 'a' do 'z' odstraňte první výskyt tohoto znaku v s (pokud existuje).

Nechť například zpočátku s = "aabcbbca". Provádíme následující operace:

Odstraňte podtržené znaky s = "aabcbbca". Výsledný řetězec je s = "abbca".
Odstraňte podtržené znaky s = "abbca". Výsledný řetězec je s = "ba".
Odstraňte podtržené znaky s = "ba". Výsledný řetězec je s = "".

Vrátí hodnotu řetězce s těsně před použitím poslední operace. Ve výše uvedeném příkladu je odpověď "ba".

Příklad 1:

Vstup: s = "aabcbbca"
Výstup: "ba"
Vysvětlení: Vysvětleno v prohlášení.

Příklad 2:

Vstup: s = "abcd"
Výstup: "abcd"
Vysvětlení: Provedeme následující operaci:
- Odstraňte podtržené znaky s = "abcd". Výsledný řetězec je s = "".
Řetězec těsně před poslední operací je "abcd".

Omezení:

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

Je vám dán řetězec s.
Zvažte provedení následující operace, dokud s nebude prázdné:

Pro každý znak abecedy od 'a' do 'z' odstraňte první výskyt tohoto znaku v s (pokud existuje).

Nechte například zpočátku s = "aabcbbca". Provádíme následující operace:

Odeberte podtržené znaky s = "aabcbbca". Výsledný řetězec je s = "abbca".
Odstraňte podtržené znaky s = "abbca". Výsledný řetězec je s = "ba".
Odstraňte podtržené znaky s = "ba". Výsledný řetězec je s = "".

Vraťte hodnotu řetězce s těsně před použitím poslední operace. Ve výše uvedeném příkladu je odpověď "ba".

Příklad 1:

Vstup: s = "aabcbbca"
Výstup: "ba"
Vysvětlení: Vysvětleno v prohlášení.

Příklad 2:

Vstup: s = "abcd"
Výstup: "abcd"
Vysvětlení: Provádíme následující operaci:
- Odstraňte podtržené znaky s = "abcd". Výsledný řetězec je s = "".
Řetězec těsně před poslední operací je "abcd".

Omezení:

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

Máte daný řetězec s. Zvažte následující operaci, dokud se s nestane prázdným:

Pro každý abecední znak od 'a' do 'z' odstraňte první výskyt tohoto znaku v s (pokud existuje).

Například, nechť je na začátku s = "aabcbbca". Provedeme následující operace:

Odstraňte podtržené znaky s = "aabcbbca". Výsledný řetězec je s = "abbca".
Odstraňte podtržené znaky s = "abbca". Výsledný řetězec je s = "ba".
Odstraňte podtržené znaky s = "ba". Výsledný řetězec je s = "".

Vraťte hodnotu řetězce s těsně před aplikací poslední operace. V uvedeném příkladu je odpověď "ba".

Příklad 1:

Vstup: s = "aabcbbca"
Výstup: "ba"
Vysvětlení: Vysvětleno ve výpise.

Příklad 2:

Vstup: s = "abcd"
Výstup: "abcd"
Vysvětlení: Provedeme následující operaci:
- Odstraňte podtržené znaky s = "abcd". Výsledný řetězec je s = "".
Řetězec těsně před poslední operací je "abcd".

Omezení:

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


Je dáno 0-indexované pole řetězců words.
Definujme booleovskou funkci isPrefixAndSuffix, která přijímá dva řetězce, str1 a str2:

isPrefixAndSuffix(str1, str2) vrátí true, pokud je str1 jak prefix, tak sufix str2, jinak false.

Například, isPrefixAndSuffix("aba", "ababa") je true, protože "aba" je prefix "ababa" a také sufix, ale isPrefixAndSuffix("abc", "abcd") je false.
Vraťte celé číslo, které označuje počet párů indexů (i, j) takových, že i < j, a isPrefixAndSuffix(words[i], words[j]) je true.

Příklad 1:

Input: words = ["a","aba","ababa","aa"]
Output: 4
Vysvětlení: V tomto příkladu jsou spočítané páry indexů:
i = 0 a j = 1, protože isPrefixAndSuffix("a", "aba") je true.
i = 0 a j = 2, protože isPrefixAndSuffix("a", "ababa") je true.
i = 0 a j = 3, protože isPrefixAndSuffix("a", "aa") je true.
i = 1 a j = 2, protože isPrefixAndSuffix("aba", "ababa") je true.
Proto je odpověď 4.
Příklad 2:

Input: words = ["pa","papa","ma","mama"]
Output: 2
Vysvětlení: V tomto příkladu jsou spočítané páry indexů:
i = 0 a j = 1, protože isPrefixAndSuffix("pa", "papa") je true.
i = 2 a j = 3, protože isPrefixAndSuffix("ma", "mama") je true.
Proto je odpověď 2.
Příklad 3:

Input: words = ["abab","ab"]
Output: 0
Vysvětlení: V tomto příkladu je jediný platný pár indexů i = 0 a j = 1, a isPrefixAndSuffix("abab", "ab") je false.
Proto je odpověď 0.

Omezení:

1 <= words.length <= 50
1 <= words[i].length <= 10
words[i] se skládá pouze z malých písmen anglické abecedy.

Je zadáno řetězcové pole slov s indexem 0.
Definujme logickou funkci isPrefixAndSuffix, která přijme dva řetězce, str1 a str2:

Funkce isPrefixAndSuffix(str1, str2) vrací true, pokud je řetězec str1 prefixem i sufixem řetězce str2, a false v opačném případě.

Například isPrefixAndSuffix(„aba“, „ababa“) je true, protože „aba“ je předponou „ababa“ a zároveň příponou, ale isPrefixAndSuffix(„abc“, „abcd“) je false.
Vraťte celé číslo označující počet indexových dvojic (i, j) takových, že i < j a isPrefixAndSuffix(words[i], words[j]) je true.

Příklad 1:

Vstup: words = [„a“, „aba“, „ababa“, „aa“]
Výstup: 4
Vysvětlení: V tomto příkladu jsou počítané dvojice indexů:
i = 0 a j = 1, protože isPrefixAndSuffix(„a“, „aba“) je true.
i = 0 a j = 2, protože isPrefixAndSuffix(„a“, „ababa“) je true.
i = 0 a j = 3, protože isPrefixAndSuffix(„a“, „aa“) je true.
i = 1 a j = 2, protože isPrefixAndSuffix(„aba“, „ababa“) je true.
Proto je odpověď 4.
Příklad 2:

Vstup: words = [„pa“, „papa“, „ma“, „mama“]
Výstup: 2
Vysvětlení: V tomto příkladu jsou počítané dvojice indexů:
i = 0 a j = 1, protože isPrefixAndSuffix(„pa“, „papa“) je true.
i = 2 a j = 3, protože isPrefixAndSuffix(„ma“, „mama“) je true.
Proto je odpověď 2.
Příklad 3:

Vstup: words = [„abab“, „ab“]
Výstup: 0
Vysvětlení: V tomto příkladu je jediná platná dvojice indexů i = 0 a j = 1 a isPrefixAndSuffix(„abab“, „ab“) je false.
Proto je odpovědí 0.

Omezení:

1 <= words.length <= 50
1 <= words[i].length <= 10
slova[i] se skládají pouze z malých anglických písmen.

Dostanete 0-indexované pole řetězců slov.
Definujme booleovskou funkci isPrefixAndSuffix , která přebírá dva řetězce, str1 a str2:

isPrefixAndSuffix(str1, str2) vrátí hodnotu true, pokud je str1 předponou i příponou řetězce str2, a v opačném případě hodnotu false.

Například isPrefixAndSuffix("aba", "ababa") je true, protože "aba" je předpona "ababa" a také přípona, ale isPrefixAndSuffix("abc", "abcd") je false.
Vrátí celé číslo označující počet párů indexů (i, j) takových, že i < j a isPrefixAndSuffix(words[i], words[j]) je true.

Příklad 1:

Vstup: words = ["a","aba","ababa","aa"]
Výstup: 4
Vysvětlení: V tomto příkladu jsou spočítané indexové páry:
i = 0 a j = 1, protože isPrefixAndSuffix("a", "aba") je true.
i = 0 a j = 2, protože isPrefixAndSuffix("a", "ababa") je true.
i = 0 a j = 3, protože isPrefixAndSuffix("a", "aa") je true.
i = 1 a j = 2, protože isPrefixAndSuffix("aba", "ababa") je true.
Odpověď je tedy 4.
Příklad 2:

Vstup: words = ["pa","papa","ma","mama"]
Výstup: 2
Vysvětlení: V tomto příkladu jsou spočítané indexové páry:
i = 0 a j = 1, protože isPrefixAndSuffix("pa", "papa") je true.
i = 2 a j = 3, protože isPrefixAndSuffix("ma", "mama") je true.
Odpověď je tedy 2.
Příklad 3:

Vstup: words = ["abab","ab"]
Výstup: 0
Vysvětlení: V tomto příkladu je jediný platný pár indexů i = 0 a j = 1 a isPrefixAndSuffix("abab", "ab") je false.
Odpověď je tedy 0.

Omezení:

1 <= words.length <= 50
1 <= words[i].length <= 10
words[i] se skládá pouze z malých anglických písmen.


Mravenec je na hranici. Někdy jde doleva a někdy doprava.
Je vám dáno pole nenulových celých čísel nums. Mravenec začíná číst nums od prvního prvku až do jeho konce. Při každém kroku se pohybuje podle hodnoty aktuálního prvku:

Pokud nums[i] < 0, pohybuje se doleva o -nums[i] jednotek.
Pokud nums[i] > 0, pohybuje se doprava o nums[i] jednotek.

Vraťte počet případů, kdy se mravenec vrátí na hranici.
Poznámky:

Na obou stranách hranice je nekonečný prostor.
Kontrolujeme, zda je mravenec na hranici, teprve poté, co se posunul |nums[i]| jednotek. Jinými slovy, pokud mravenec překročí hranici během svého pohybu, nepočítá se to.

Příklad 1:

Vstup: nums = [2,3,-5]
Výstup: 1
Vysvětlení: Po prvním kroku je mravenec 2 kroky vpravo od hranice.
Po druhém kroku je mravenec 5 kroků vpravo od hranice.
Po třetím kroku je mravenec na hranici.
Takže odpověď je 1.

Příklad 2:

Vstup: nums = [3,2,-3,-4]
Výstup: 0
Vysvětlení: Po prvním kroku je mravenec 3 kroky vpravo od hranice.
Po druhém kroku je mravenec 5 kroků vpravo od hranice.
Po třetím kroku je mravenec 2 kroky vpravo od hranice.
Po čtvrtém kroku je mravenec 2 kroky vlevo od hranice.
Mravenec se nikdy nevrátil na hranici, takže odpověď je 0.

Omezení:

1 <= nums.length <= 100
-10 <= nums[i] <= 10
nums[i] != 0

Mravenec je na hranici. Někdy jde doleva a někdy doprava.
Dostanete pole nenulových celých čísel. Mravenec začíná číst čísla od prvního prvku až do svého konce. V každém kroku se posune podle hodnoty aktuálního prvku:

Pokud nums[i] < 0, posune se doleva o -nums[i] jednotek. Pokud nums[i] > 0, posune se doprava o nums[i] jednotek.

Vrátí počet návratů mravence k hranici.
Poznámky:

Na obou stranách hranice je nekonečný prostor.
Zda je mravenec na hranici, zkontrolujeme až poté, co se pohne |nums[i]| jednotky. Jinými slovy, pokud mravenec během svého pohybu překročí hranici, nepočítá se to.

Příklad 1:

Vstup: nums = [2,3,-5]
Výstup: 1
Vysvětlení: Po prvním kroku je mravenec 2 kroky napravo od hranice.
Po druhém kroku je mravenec 5 kroků napravo od hranice.
Po třetím kroku je mravenec na hranici.
Odpověď je tedy 1.

Příklad 2:

Vstup: nums = [3,2,-3,-4]
Výstup: 0
Vysvětlení: Po prvním kroku je mravenec 3 kroky napravo od hranice.
Po druhém kroku je mravenec 5 kroků napravo od hranice.
Po třetím kroku je mravenec 2 kroky napravo od hranice.
Po čtvrtém kroku je mravenec 2 kroky nalevo od hranice.
Mravenec se nikdy nevrátil na hranici, takže odpověď je 0.

Omezení:

1 <= nums.length <= 100
-10 <= nums[i] <= 10
nums[i] != 0

Mravenec je na hranici. Někdy jde doleva a někdy doprava.
Je dáno pole nenulových celých čísel nums. Mravenec začne číst nums od jeho prvního prvku až po jeho konec. V každém kroku se pohybuje podle hodnoty aktuálního prvku:

Pokud je nums[i] < 0, posune se doleva o -nums[i] jednotek.
Pokud nums[i] > 0, posune se doprava o jednotky nums[i].

Vraťte počet návratů mravence na hranici.
Poznámky:

Na obou stranách hranice je nekonečný prostor.
Zda je mravenec na hranici, zjišťujeme až poté, co se posunul o |nums[i]| jednotek. Jinými slovy, pokud mravenec překročí hranici během svého pohybu, nepočítá se to.

Příklad 1:

Vstup: nums = [2,3,-5]
Výstup: 1
Vysvětlení: Po prvním kroku je mravenec o 2 kroky vpravo od hranice.
Po druhém kroku je mravenec 5 kroků vpravo od hranice.
Po třetím kroku je mravenec na hranici.
Odpověď je tedy 1.

Příklad 2:

Vstup: nums = [3,2,-3,-4]
Výstup: 0
Vysvětlení: Po prvním kroku je mravenec 3 kroky vpravo od hranice.
Po druhém kroku je mravenec 5 kroků vpravo od hranice.
Po třetím kroku je mravenec 2 kroky vpravo od hranice.
Po čtvrtém kroku je mravenec 2 kroky vlevo od hranice.
Mravenec se nikdy nevrátil k hranici, takže odpověď je 0.

Omezení:

1 <= nums.length <= 100
-10 <= nums[i] <= 10
nums[i] != 0


Je vám dána 0-indexovaná řetězec `s` zadaný uživatelem. Změna klávesy je definována jako použití jiné klávesy než naposledy použité. Například, `s = "ab"` má změnu klávesy, zatímco `s = "bBBb"` nemá žádnou změnu.
Vraťte počet případů, kdy uživatel musel změnit klávesu.
Poznámka: Modifikátory jako shift nebo caps lock se nebudou počítat jako změna klávesy, to znamená, že pokud uživatel napsal písmeno 'a' a poté písmeno 'A', nebude to považováno za změnu klávesy.

Příklad 1:

Vstup: s = "aAbBcC"
Výstup: 2
Vysvětlení:
Od s[0] = 'a' do s[1] = 'A', nedochází ke změně klávesy, protože caps lock nebo shift se nepočítají.
Od s[1] = 'A' do s[2] = 'b', dochází ke změně klávesy.
Od s[2] = 'b' do s[3] = 'B', nedochází ke změně klávesy, protože caps lock nebo shift se nepočítají.
Od s[3] = 'B' do s[4] = 'c', dochází ke změně klávesy.
Od s[4] = 'c' do s[5] = 'C', nedochází ke změně klávesy, protože caps lock nebo shift se nepočítají.

Příklad 2:

Vstup: s = "AaAaAaaA"
Výstup: 0
Vysvětlení: Nedochází ke změně klávesy, protože jsou stisknuty pouze písmena 'a' a 'A', což nevyžaduje změnu klávesy.

Omezení:

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

Dostanete řetězec s indexem 0 zadaný uživatelem. Změna klíče je definována jako použití klíče odlišného od naposledy použitého klíče. Například s = "ab" má změnu klíče, zatímco s = "bBBb" nemá žádný.
Vrátí, kolikrát musel uživatel změnit klíč.
Poznámka: Modifikátory jako shift nebo caps lock se při změně klíče nezapočítávají. Pokud uživatel zadá písmeno „a“ a poté písmeno „A“, nebude to považováno za změnu klíče.

Příklad 1:

Vstup: s = "aAbBcC"
Výstup: 2
Vysvětlení:
Od s[0] = 'a' do s[1] = 'A' nedochází k žádné změně klíče, protože Caps Lock nebo shift se nezapočítávají.
Z s[1] = 'A' na s[2] = 'b' dojde ke změně klíče.
Od s[2] = 'b' do s[3] = 'B' nedochází k žádné změně klíče, protože Caps Lock nebo shift se nezapočítávají.
Z s[3] = 'B' na s[4] = 'c' dojde ke změně klíče.
Od s[4] = 'c' do s[5] = 'C' nedochází k žádné změně klíče, protože se nepočítá caps lock nebo shift.

Příklad 2:

Vstup: s = "AaAaAaaA"
Výstup: 0
Vysvětlení: Nedochází k žádné změně tlačítka, protože jsou stisknuta pouze písmena 'a' a 'A', což nevyžaduje změnu klíče.

Omezení:

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

Dostanete řetězec indexovaný 0 zadaný uživatelem. Změna klíče je definována jako použití jiného klíče, než je naposledy použitý klíč. Například s = "ab" má změnu klíče, zatímco s = "bBBb" nemá žádnou.
Vrátí, kolikrát musel uživatel změnit klíč.
Poznámka: Modifikátory jako Shift nebo Caps Lock se při změně klávesy nezapočítávají, to znamená, že pokud uživatel zadal písmeno "a" a poté písmeno "A", nebude to považováno za změnu klávesy.

Příklad 1:

Vstup: s = "aAbBcC"
Výstup: 2
Vysvětlení:
Od s[0] = 'a' do s[1] = 'A' nedochází ke změně klíče, protože se nepočítá caps lock nebo shift.
Z s[1] = 'A' na s[2] = 'b' dojde ke změně klíče.
Od s[2] = 'b' do s[3] = 'B', nedochází ke změně klíče, protože se nepočítá caps lock nebo shift.
Z s[3] = 'B' na s[4] = 'c' dojde ke změně klíče.
Od s[4] = 'c' do s[5] = 'C' nedochází ke změně klíče, protože se nepočítá caps lock nebo shift.

Příklad 2:

Vstup: s = "AaAaAaaA"
Výstup: 0
Vysvětlení: Nedochází ke změně tóniny, protože jsou stisknuta pouze písmena "a" a "A", což nevyžaduje změnu klíče.

Omezení:

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


Dostanete pole řetězců s 0 indexovanými slovy, která mají délku n a obsahují 0 indexované řetězce.
Následující operaci můžete provést libovolný počet opakování (včetně nuly):

Vyberte celá čísla i, j, x a y tak, aby 0 <= i, j < n, 0 <= x < slova[i].length, 0 <= y < slova[j].length, a vyměňte znaky slovy [i][x] a slova[j][y].

Vrátí celé číslo označující maximální počet palindromů, které mohou slova obsahovat po provedení některých operací.
Poznámka: i a j se mohou během operace rovnat.

Příklad 1:

Vstup: slova = ["abbb","ba","aa"]
Výstup: 3
Vysvětlení: V tomto příkladu je jedním ze způsobů, jak získat maximální počet palindromů:
Zvolte i = 0, j = 1, x = 0, y = 0, takže prohodíme slova[0][0] a slova[1][0]. slova se stávají ["bbbb","aa","aa"].
Všechny řetězce ve slovech jsou nyní palindromy.
Maximální dosažitelný počet palindromů je tedy 3.
Příklad 2:

Vstup: slova = ["abc","ab"]
Výstup: 2
Vysvětlení: V tomto příkladu je jedním ze způsobů, jak získat maximální počet palindromů:
Zvolte i = 0, j = 1, x = 1, y = 0, takže zaměníme slova[0][1] a slova[1][0]. slova se změní na ["aac","bb"].
Zvolte i = 0, j = 0, x = 1, y = 2, takže zaměníme slova[0][1] a slova[0][2]. slova se změní na ["aca","bb"].
Obě struny jsou nyní palindromy.
Maximální dosažitelný počet palindromů je tedy 2.

Příklad 3:

Vstup: slova = ["cd","ef","a"]
Výstup: 1
Vysvětlení: V tomto příkladu není potřeba provádět žádnou operaci.
Ve slovech „a“ je jeden palindrom.
Lze prokázat, že po libovolném počtu operací není možné získat více než jeden palindrom.
Odpověď je tedy 1.

Omezení:

1 <= slova.length <= 1000
1 <= slova[i].length <= 100
slova[i] se skládají pouze z malých anglických písmen.

Dostanete pole řetězců s indexem 0, která mají délku n a obsahují řetězce indexované číslem 0.
Následující operaci můžete provést libovolněkrát (včetně nuly):

Zvolte celá čísla i, j, x a y taková, že 0 <= i, j < n, 0 <= x < words[i].length, 0 <= y < words[j].length, a zaměňte znaky words[i][x] a words[j][y].

Po provedení některých operací vrátí celé číslo označující maximální počet slov, které mohou palindromy obsahovat.
Poznámka: i a j mohou být během operace stejné.

Příklad 1:

Vstup: words = ["abbb","ba","aa"]
Výstup: 3
Vysvětlení: V tomto příkladu je jedním ze způsobů, jak získat maximální počet palindromů, následující:
Zvolte i = 0, j = 1, x = 0, y = 0, takže zaměníme words[0][0] a words[1][0]. slova se změní na ["bbbb","aa","aa"].
Všechny řetězce ve slovech jsou nyní palindromy.
Maximální dosažitelný počet palindromů je tedy 3.
Příklad 2:

Vstup: words = ["abc","ab"]
Výstup: 2
Vysvětlení: V tomto příkladu je jedním ze způsobů, jak získat maximální počet palindromů, následující:
Vyberte i = 0, j = 1, x = 1, y = 0, takže zaměníme words[0][1] a words[1][0]. slova se změní na ["aac","bb"].
Zvolte i = 0, j = 0, x = 1, y = 2, takže zaměníme words[0][1] a words[0][2]. slova se změní na ["aca","bb"].
Obě struny jsou nyní palindromy.
Maximální dosažitelný počet palindromů je tedy 2.

Příklad 3:

Vstup: words = ["cd","ef","a"]
Výstup: 1
Vysvětlení: V tomto příkladu není nutné provádět žádnou operaci.
Ve slovech "a" je jeden palindrom.
Lze ukázat, že není možné získat více než jeden palindrom po libovolném počtu operací.
Odpověď je tedy 1.

Omezení:

1 <= words.length <= 1000
1 <= words[i].length <= 100
words[i] se skládá pouze z malých anglických písmen.

Dostanete pole řetězců s 0 indexovanými slovy, která mají délku n a obsahují 0 indexované řetězce.
Následující operaci můžete provést libovolný počet opakování (včetně nuly):

Vyberte celá čísla i, j, x a y tak, aby 0 <= i, j < n, 0 <= x < slova[i].length, 0 <= y < slova[j].length, a vyměňte znaky slovy [i][x] a slova[j][y].

Vrátí celé číslo označující maximální počet palindromů, které mohou slova obsahovat po provedení některých operací.
Poznámka: i a j se mohou během operace rovnat.

Příklad 1:

Vstup: words = ["abbb","ba","aa"]
Výstup: 3
Vysvětlení: V tomto příkladu je jedním ze způsobů, jak získat maximální počet palindromů:
Zvolte i = 0, j = 1, x = 0, y = 0, takže prohodíme slova[0][0] a slova[1][0]. slova se stávají ["bbbb","aa","aa"].
Všechny řetězce ve slovech jsou nyní palindromy.
Maximální dosažitelný počet palindromů je tedy 3.
Příklad 2:

Vstup: words = ["abc","ab"]
Výstup: 2
Vysvětlení: V tomto příkladu je jedním ze způsobů, jak získat maximální počet palindromů:
Zvolte i = 0, j = 1, x = 1, y = 0, takže zaměníme words[0][1] a words[1][0]. words se stane ["aac","bb"].
Zvolte i = 0, j = 0, x = 1, y = 2, takže zaměníme words[0][1] a words[0][2]. words se stane ["aca","bb"].
Obě struny jsou nyní palindromy.
Maximální dosažitelný počet palindromů je tedy 2.

Příklad 3:

Vstup: words = ["cd","ef","a"]
Výstup: 1
Vysvětlení: V tomto příkladu není potřeba provádět žádnou operaci.
Ve slovech „a“ je jeden palindrom.
Lze prokázat, že po libovolném počtu operací není možné získat více než jeden palindrom.
Odpověď je tedy 1.

Omezení:

1 <= words.length <= 1000
1 <= words[i].length <= 100
slova[i] se skládají pouze z malých anglických písmen.


Vzhledem k poli celých čísel nazývaných nums můžete provést následující operaci, zatímco nums obsahuje alespoň 2 prvky:

Vyberte první dva prvky čísel a odstraňte je.

Skóre operace je součet odstraněných prvků.
Vaším úkolem je najít maximální počet operací, které lze provést, aby všechny operace měly stejné skóre.
Vraťte maximální možný počet operací, které splňují výše uvedenou podmínku.

Příklad 1:

Vstup: nums = [3,2,1,4,5]
Výstup: 2
Vysvětlení: Provádíme následující operace:
- Odstraňte první dva prvky se skóre 3 + 2 = 5, nums = [1,4,5].
- Odstraňte první dva prvky se skóre 1 + 4 = 5, nums = [5].
Nemůžeme provádět žádné další operace, protože čísla obsahují pouze 1 prvek.
Příklad 2:

Vstup: nums = [3,2,6,1,4]
Výstup: 1
Vysvětlení: Provádíme následující operace:
- Odstraňte první dva prvky se skóre 3 + 2 = 5, nums = [6,1,4].
Nemůžeme provést žádné další operace, protože skóre další operace není stejné jako předchozí.

Omezení:

2 <= nums.length <= 100
1 <= nums[i] <= 1000

Pokud je zadáno pole celých čísel nazvané nums, můžete provést následující operaci, dokud nums obsahuje alespoň 2 prvky:

Vyberte první dva prvky pole nums a vymažte je.

Výsledkem operace je součet smazaných prvků.
Vaším úkolem je najít maximální počet operací, které lze provést, tak, aby všechny operace měly stejné skóre.
Vraťte maximální možný počet operací, které splňují výše uvedenou podmínku.

Příklad 1:

Vstup: nums = [3,2,1,4,5]
Výstup: 2
Vysvětlení: Provedeme následující operace:
- Vymažeme první dva prvky s výsledkem 3 + 2 = 5, nums = [1,4,5].
- Vymažeme první dva prvky se skóre 1 + 4 = 5, nums = [5].
Další operace nemůžeme provést, protože nums obsahuje pouze 1 prvek.
Příklad 2:

Vstup: nums = [3,2,6,1,4]
Výstup: 1
Vysvětlení: Provedeme následující operace:
- Vymažeme první dva prvky s výsledkem 3 + 2 = 5, nums = [6,1,4].
Další operace nemůžeme provést, protože skóre další operace není stejné jako u předchozí.

Omezení:

2 <= nums.length <= 100
1 <= nums[i] <= 1000

Je dán pole celých čísel s názvem nums. Můžete provést následující operaci, pokud nums obsahuje alespoň 2 prvky:

Vyberte první dva prvky pole nums a smažte je.

Skóre operace je součet smazaných prvků.
Vaším úkolem je najít maximální počet operací, které lze provést tak, aby všechna skóre operací byla stejná.
Vraťte maximální počet možných operací, které splňují výše uvedenou podmínku.

Příklad 1:

Vstup: nums = [3,2,1,4,5]
Výstup: 2
Vysvětlení: Provedeme následující operace:
- Smažte první dva prvky, se skóre 3 + 2 = 5, nums = [1,4,5].
- Smažte první dva prvky, se skóre 1 + 4 = 5, nums = [5].
Nelze provést další operace, protože nums obsahuje pouze 1 prvek.

Příklad 2:

Vstup: nums = [3,2,6,1,4]
Výstup: 1
Vysvětlení: Provedeme následující operace:
- Smažte první dva prvky, se skóre 3 + 2 = 5, nums = [6,1,4].
Nelze provést další operace, protože skóre následující operace není stejné jako předchozí.

Omezení:

2 <= nums.length <= 100
1 <= nums[i] <= 1000


Je vám dáno celočíselné pole nums sudé délky. Musíte rozdělit pole na dvě části nums1 a nums2 tak, aby:

nums1.length == nums2.length == nums.length / 2.
nums1 by měl obsahovat různé prvky.
nums2 by měl také obsahovat různé prvky.

Vrátí true, pokud je možné pole rozdělit, jinak false.

Příklad 1:

Vstup: nums = [1,1,2,2,3,4]
Výstup: true
Vysvětlení: Jeden z možných způsobů, jak rozdělit nums, je nums1 = [1,2,3] a nums2 = [1,2,4].

Příklad 2:

Vstup: nums = [1,1,1,1]
Výstup: false
Vysvětlení: Jediný možný způsob, jak rozdělit nums, je nums1 = [1,1] a nums2 = [1,1]. Ani nums1 ani nums2 neobsahují různé prvky. Proto vracíme false.

Omezení:

1 <= nums.length <= 100
nums.length % 2 == 0
1 <= nums[i] <= 100

Dostanete celé pole čísel sudé délky. Pole musíte rozdělit na dvě části nums1 a nums2 tak, aby:

nums1.length == nums2.length == nums.length / 2.
nums1 by měl obsahovat odlišné prvky.
nums2 by měl také obsahovat odlišné prvky.

Vraťte true, pokud je možné pole rozdělit, a false v opačném případě.

Příklad 1:

Vstup: nums = [1,1,2,2,3,4]
Výstup: pravda
Vysvětlení: Jedním z možných způsobů rozdělení čísel je nums1 = [1,2,3] a nums2 = [1,2,4].

Příklad 2:

Vstup: nums = [1,1,1,1]
Výstup: nepravda
Vysvětlení: Jediný možný způsob rozdělení čísel je nums1 = [1,1] a nums2 = [1,1]. Jak nums1, tak nums2 neobsahují odlišné prvky. Proto vracíme false.

Omezení:

1 <= nums.length <= 100
počet.length % 2 == 0
1 <= nums[i] <= 100


Máte dány dva pole s kladnými celými čísly arr1 a arr2. Prefix kladného celého čísla je číslo vytvořené z jedné nebo více jeho číslic, počínaje jeho nejlevější číslicí. Například 123 je prefixem čísla 12345, zatímco 234 není. Společný prefix dvou čísel a a b je číslo c, takové, že c je prefixem jak čísla a, tak čísla b. Například 5655359 a 56554 mají společný prefix 565, zatímco 1223 a 43456 nemají žádný společný prefix. Vaším úkolem je najít délku nejdelšího společného prefixu mezi všemi dvojicemi čísel (x, y) tak, že x patří do arr1 a y patří do arr2. Vraťte délku nejdelšího společného prefixu mezi všemi dvojicemi. Pokud mezi nimi neexistuje žádný společný prefix, vraťte 0.

Příklad 1:

Vstup: arr1 = [1,10,100], arr2 = [1000]
Výstup: 3
Vysvětlení: Existují 3 dvojice (arr1[i], arr2[j]):
- Nejdelší společný prefix pro (1, 1000) je 1.
- Nejdelší společný prefix pro (10, 1000) je 10.
- Nejdelší společný prefix pro (100, 1000) je 100.
Nejdelší společný prefix je 100 s délkou 3.

Příklad 2:

Vstup: arr1 = [1,2,3], arr2 = [4,4,4]
Výstup: 0
Vysvětlení: Neexistuje žádný společný prefix pro žádnou dvojici (arr1[i], arr2[j]), proto vracíme 0. Všimněte si, že společné prefixy mezi prvky stejného pole se nepočítají.

Omezení:

1 <= arr1.length, arr2.length <= 5 * 10^4
1 <= arr1[i], arr2[i] <= 10^8

Dostanete dvě pole s kladnými celými čísly arr1 a arr2.
Předpona kladného celého čísla je celé číslo tvořené jednou nebo více číslicemi, počínaje číslicí zcela vlevo. Například 123 je předpona celého čísla 12345, zatímco 234 není.
Společná předpona dvou celých čísel a a b je celé číslo c, takže c je předpona a i b. Například 5655359 a 56554 mají společnou předponu 565, zatímco 1223 a 43456 společnou předponu nemají.
Potřebujete najít délku nejdelší společné předpony mezi všemi páry celých čísel (x, y) takovou, že x patří do arr1 a y patří do arr2.
Vrátí délku nejdelší společné předpony mezi všemi páry. Pokud mezi nimi neexistuje žádná společná předpona, vrátí hodnotu 0.

Příklad 1:

Vstup: arr1 = [1,10,100], arr2 = [1000]
Výstup: 3
Vysvětlení: Existují 3 páry (arr1[i], arr2[j]):
- Nejdelší běžná předpona (1 1000) je 1.
- Nejdelší běžná předpona (10, 1000) je 10.
- Nejdelší běžná předpona (100, 1000) je 100.
Nejdelší běžná předpona je 100 s délkou 3.

Příklad 2:

Vstup: arr1 = [1,2,3], arr2 = [4,4,4]
Výstup: 0
Vysvětlení: Pro žádný pár neexistuje žádná společná předpona (arr1[i], arr2[j]), proto vracíme 0.
Všimněte si, že běžné předpony mezi prvky stejného pole se nepočítají.

Omezení:

1 <= arr1.length, arr2.length <= 5 * 10^4
1 <= arr1[i], arr2[i] <= 10^8

Jsou dána dvě pole s celými kladnými čísly arr1 a arr2.
Prefix kladného celého čísla je celé číslo tvořené jednou nebo více jeho číslicemi, počínaje jeho nejlevější číslicí. Například číslo 123 je prefixem celého čísla 12345, zatímco číslo 234 jím není.
Společný prefix dvou celých čísel a a b je takové celé číslo c, že c je prefixem a i b. Například 5655359 a 56554 mají společný prefix 565, zatímco 1223 a 43456 společný prefix nemají.
Potřebujete zjistit délku nejdelšího společného prefixu mezi všemi dvojicemi celých čísel (x, y) tak, že x patří do arr1 a y patří do arr2.
Vraťte délku nejdelšího společného prefixu mezi všemi dvojicemi. Pokud mezi nimi žádný společný prefix neexistuje, vraťte 0.

Příklad 1:

Vstup: arr1 = [1,10,100], arr2 = [1000]
Výstup: 3
Vysvětlení: Existují 3 dvojice (arr1[i], arr2[j]):
- Nejdelší společný prefix (1, 1000) je 1.
- Nejdelší společný prefix dvojic (10, 1000) je 10.
- Nejdelší společný prefix dvojic (100, 1000) je 100.
Nejdelší společný prefix je 100 o délce 3.

Příklad 2:

Vstup: arr1 = [1,2,3], arr2 = [4,4,4].
Výstup: 0
Vysvětlení: Pro žádnou dvojici (arr1[i], arr2[j]) neexistuje společný prefix, proto vracíme 0.
Všimněte si, že společné prefixy mezi prvky téhož pole se nepočítají.

Omezení:

1 <= arr1.length, arr2.length <= 5 * 10^4
1 <= arr1[i], arr2[i] <= 10^8


Je vám dáno pole celých čísel nums (indexované od nuly) a celé číslo k.
V jedné operaci můžete odstranit jeden výskyt nejmenšího prvku z nums.
Vrátí minimální počet operací potřebných k tomu, aby všechny prvky pole byly větší nebo rovny k.

Příklad 1:

Vstup: nums = [2,11,10,1,3], k = 10
Výstup: 3
Vysvětlení: Po jedné operaci se nums změní na [2, 11, 10, 3].
Po dvou operacích se nums změní na [11, 10, 3].
Po třech operacích se nums změní na [11, 10].
V tuto chvíli jsou všechny prvky pole nums větší nebo rovny 10, takže můžeme přestat.
Lze ukázat, že 3 je minimální počet operací potřebných k tomu, aby všechny prvky pole byly větší nebo rovny 10.

Příklad 2:

Vstup: nums = [1,1,2,4,9], k = 1
Výstup: 0
Vysvětlení: Všechny prvky pole jsou větší nebo rovny 1, takže nemusíme aplikovat žádné operace na nums.

Příklad 3:

Vstup: nums = [1,1,2,4,9], k = 9
Výstup: 4
Vysvětlení: pouze jediný prvek z nums je větší nebo roven 9, takže musíme aplikovat operace 4krát na nums.

Omezení:

1 <= nums.length <= 50
1 <= nums[i] <= 10^9
1 <= k <= 10^9
Vstup je generován tak, že existuje alespoň jeden index i, pro který platí nums[i] >= k.

Dostanete 0-indexované celočíselné pole nums a celé číslo k.
V jedné operaci můžete odstranit jeden výskyt nejmenšího prvku num.
Vrátí minimální počet operací potřebných k tomu, aby všechny prvky pole byly větší nebo rovné k.

Příklad 1:

Vstup: nums = [2,11,10,1,3], k = 10
Výstup: 3
Vysvětlení: Po jedné operaci se nums rovná [2, 11, 10, 3].
Po dvou operacích se num rovná [11, 10, 3].
Po třech operacích se num rovná [11, 10].
V této fázi jsou všechny prvky num větší nebo rovné 10, takže se můžeme zastavit.
Lze ukázat, že 3 je minimální počet operací potřebných k tomu, aby všechny prvky pole byly větší nebo rovné 10.

Příklad 2:

Vstup: nums = [1,1,2,4,9], k = 1
Výstup: 0
Vysvětlení: Všechny prvky pole jsou větší nebo rovny 1, takže s nums nemusíme provádět žádné operace.
Příklad 3:

Vstup: nums = [1,1,2,4,9], k = 9
Výstup: 4
Vysvětlení: pouze jeden prvek nums je větší nebo roven 9, takže musíme provést operace 4krát na num.

Omezení:

1 <= nums.length <= 50
1 <= nums[i] <= 10^9
1 <= k <= 10^9
Vstup je generován tak, že existuje alespoň jeden index i takový, že nums[i] >= k.


Dostanete 1 indexované pole různých celých čísel délky n.
Musíte distribuovat všechny prvky nums mezi dvě pole arr1 a arr2 pomocí n operací. V první operaci připojte nums[1] k arr1. Ve druhé operaci připojte nums[2] k arr2. Poté v i^té operaci:

Pokud je poslední prvek arr1 větší než poslední prvek arr2, připojte k arr1 nums[i]. V opačném případě připojte nums[i] k arr2.

Výsledek pole je vytvořen zřetězením polí arr1 a arr2. Pokud například arr1 == [1,2,3] a arr2 == [4,5,6], pak výsledek = [1,2,3,4,5,6].
Vraťte výsledek pole.

Příklad 1:

Vstup: nums = [2,1,3]
Výstup: [2,3,1]
Vysvětlení: Po prvních 2 operacích arr1 = [2] a arr2 = [1].
Ve 3. operaci, protože poslední prvek arr1 je větší než poslední prvek arr2 (2 > 1), připojte k arr1 nums[3].
Po 3 operacích arr1 = [2,3] a arr2 = [1].
Výsledkem pole vytvořeného zřetězením je tedy [2,3,1].

Příklad 2:

Vstup: nums = [5,4,3,8]
Výstup: [5,3,4,8]
Vysvětlení: Po prvních 2 operacích arr1 = [5] a arr2 = [4].
Ve 3. operaci, protože poslední prvek arr1 je větší než poslední prvek arr2 (5 > 4), připojte nums[3] k arr1, takže arr1 se změní na [5,3].
Ve 4. operaci, protože poslední prvek arr2 je větší než poslední prvek arr1 (4 > 3), připoj nums[4] k arr2, takže arr2 se změní na [4,8].
Po 4 operacích arr1 = [5,3] a arr2 = [4,8].
Výsledek pole vytvořený zřetězením je tedy [5,3,4,8].

Omezení:

3 <= n <= 50
1 <= nums[i] <= 100
Všechny prvky v číslech jsou odlišné.

Dostanete 1-indexované pole různých celých čísel o délce n.
Je třeba rozmístit všechny prvky nums mezi dvě pole arr1 a arr2 pomocí n operací. V první operaci připojte nums[1] k arr1. Ve druhé operaci připojte nums[2] k arr2. Poté v i^té operaci:

Pokud je poslední prvek arr1 větší než poslední prvek arr2, připojte nums[i] k arr1. V opačném případě připojte nums[i] k arr2.

Výsledek pole je tvořen zřetězením polí arr1 a arr2. Pokud například arr1 == [1,2,3] a arr2 == [4,5,6], pak result = [1,2,3,4,5,6].
Vrátí výsledek pole.

Příklad 1:

Vstup: nums = [2,1,3]
Výstup: [2,3,1]
Vysvětlení: Po prvních 2 operacích arr1 = [2] a arr2 = [1].
V operaci 3^rd, protože poslední prvek arr1 je větší než poslední prvek arr2 (2 > 1), připojte nums[3] k arr1.
Po 3 operacích arr1 = [2,3] a arr2 = [1].
Výsledek pole vytvořený zřetězením je tedy [2,3,1].

Příklad 2:

Vstup: nums = [5,4,3,8]
Výstup: [5,3,4,8]
Vysvětlení: Po prvních 2 operacích arr1 = [5] a arr2 = [4].
V operaci 3^rd, protože poslední prvek arr1 je větší než poslední prvek arr2 (5 > 4), připojte k arr1 číslo[3], takže arr1 se stane [5,3].
Ve 4^té operaci, protože poslední prvek arr2 je větší než poslední prvek arr1 (4 > 3), připojte k arr2 čísla[4], takže arr2 se stane [4,8].
Po 4 operacích arr1 = [5,3] a arr2 = [4,8].
Výsledek pole vytvořený zřetězením je tedy [5,3,4,8].

Omezení:

3 <= n <= 50
1 <= nums[i] <= 100
Všechny prvky v nums jsou odlišné.


Takahashi a Aoki hráli N her.
Dostanete řetězec S délky N, který představuje výsledky těchto her.
Takahashi vyhrál i-tou hru, pokud i-tá postava S je T, a Aoki vyhrál tuto hru, pokud je A.
Celkovým vítězem mezi Takahashi a Aoki je ten, kdo vyhrál více her než ten druhý.
Pokud měli stejný počet výher, celkovým vítězem je ten, kdo dosáhl tohoto počtu výher jako první.
Najděte celkového vítěze: Takahashi nebo Aoki.

Vstup

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

Výstup

Pokud je celkovým vítězem Takahashi, vytiskněte T; pokud je to Aoki, vytiskněte A.

Omezení

- 1\leq N \leq 100
- N je celé číslo.
- S je řetězec délky N sestávající z T a A.

Ukázkový vstup 1

5
TTAAT

Ukázkový výstup 1

T

Takahashi vyhrál tři hry a Aoki vyhrál dvě.
Celkovým vítězem je tedy Takahashi, který vyhrál více her.

Ukázkový vstup 2

6
ATTATA

Ukázkový výstup 2

T

Takahashi i Aoki vyhráli tři hry.
Takahashi dosáhl tří výher v páté hře a Aoki v šesté hře.
Celkovým vítězem se tedy stává Takahashi, který dosáhl tří výher jako první.

Ukázkový vstup 3

1
A

Ukázkový výstup 3

A

Takahaši a Aoki odehráli N her.
Máte k dispozici řetězec S o délce N, který představuje výsledky těchto her.
Takahashi vyhrál i-tou hru, pokud i-tý znak S je T, a Aoki vyhrál tuto hru, pokud je A.
Celkovým vítězem mezi Takahašim a Aokim je ten, kdo vyhrál více her než druhý.
Pokud měli stejný počet výher, je celkovým vítězem ten, kdo dosáhl tohoto počtu výher jako první.
Určete celkového vítěze: Takahashi nebo Aoki.

Zadání:

Vstup je zadán ze standardního vstupu v následujícím formátu:
N
S

Výstup

Pokud je celkovým vítězem Takahashi, vypište T; pokud je jím Aoki, vypište A.

Omezení

- 1\leq N \leq 100
- N je celé číslo.
- S je řetězec délky N složený z T a A.

Vzorový vstup 1

5
TTAAT

Ukázkový výstup 1

T

Takahaši vyhrál tři hry a Aoki dvě.
Celkovým vítězem je tedy Takahaši, který vyhrál více her.

Vzorový vstup 2

6
ATTATA

Ukázkový výstup 2

T

Takahashi i Aoki vyhráli tři hry.
Takahaši dosáhl tří výher v páté hře a Aoki v šesté hře.
Celkovým vítězem se tedy stává Takahaši, který dosáhl tří výher jako první.

Vzorový vstup 3

1
A

Ukázkový výstup 3

A

Takahashi and Aoki played N games.
You are given a string S of length N, representing the results of these games.
Takahashi won the i-th game if the i-th character of S is T, and Aoki won that game if it is A.
The overall winner between Takahashi and Aoki is the one who won more games than the other.
If they had the same number of wins, the overall winner is the one who reached that number of wins first.
Find the overall winner: Takahashi or Aoki.

Input

The input is given from Standard Input in the following format:
N
S

Output

If the overall winner is Takahashi, print T; if it is Aoki, print A.

Constraints

- 1\leq N \leq 100
- N is an integer.
- S is a string of length N consisting of T and A.

Sample Input 1

5
TTAAT

Sample Output 1

T

Takahashi won three games, and Aoki won two.
Thus, the overall winner is Takahashi, who won more games.

Sample Input 2

6
ATTATA

Sample Output 2
T

akahashi i Aoki vyhráli tři hry.
Takahashi dosáhl tří výher v páté hře a Aoki v šesté hře.
Celkovým vítězem se tedy stává Takahashi, protože dosáhl tří výher jako první.

Vzorkovací vstup 3

1
A

Vzorkovací vstup 3

A


Máme posloupnost délky N složenou z kladných celých čísel: A=(A_1,\ldots,A_N). Libovolné dva sousední členy mají různé hodnoty.
Vložme do této posloupnosti některá čísla následujícím postupem.

- Pokud má každá dvojice sousedních členů v A absolutní rozdíl 1, ukončíme postup.
- Nechť A_i, A_{i+1} je dvojice sousedních termů nejblíže začátku A, jejichž absolutní rozdíl není 1.
- Jestliže A_i < A_{i+1}, vložíme mezi A_i a A_{i+1} A_i+1,A_i+2,\ldots,A_{i+1}-1.
- Pokud A_i > A_{i+1}, vložte mezi A_i a A_{i+1} A_i-1,A_i-2,\ldots,A_{i+1}+1.

- Vraťte se ke kroku 1.

Po ukončení procedury vypište posloupnost.

Vstup

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

Výstup

Vypište výrazy v posloupnosti po ukončení procedury oddělené mezerami.

Omezení

- 2 \leq N \leq 100
- 1 \leq A_i \leq 100
- A_i \neq A_{i+1}
- Všechny hodnoty na vstupu jsou celá čísla.

Vzorový vstup 1

4
2 5 1 2

Ukázkový výstup 1

2 3 4 5 4 3 2 1 2

Počáteční posloupnost je (2,5,1,2). Postup je následující.

- Mezi první člen 2 a druhý člen 5 vložíme 3,4, čímž vznikne posloupnost (2,3,4,5,1,2).
- Mezi čtvrtý člen 5 a pátý člen 1 vložíme 4,3,2, čímž vznikne posloupnost (2,3,4,5,4,3,2,1,2).

Vzorový vstup 2

6
3 4 5 6 5 4

Vzorový výstup 2

3 4 5 6 5 4

Nelze provádět žádné vložení.

Máme posloupnost délky N složenou z kladných celých čísel: A=(A_1,\ldots,A_N). Libovolné dva sousední členy mají různé hodnoty.
Vložme do této posloupnosti některá čísla následujícím postupem.

- Pokud má každá dvojice sousedních členů v A absolutní rozdíl 1, ukončíme postup.
- Nechť A_i, A_{i+1} je dvojice sousedních termů nejblíže začátku A, jejichž absolutní rozdíl není 1.
- Jestliže A_i < A_{i+1}, vložíme mezi A_i a A_{i+1} A_i+1,A_i+2,\ldots,A_{i+1}-1.
- Pokud A_i > A_{i+1}, vložte mezi A_i a A_{i+1} A_i-1,A_i-2,\ldots,A_{i+1}+1.

- Vraťte se ke kroku 1.

Po ukončení procedury vypište posloupnost.

Vstup

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

Výstup

Vypište výrazy v posloupnosti po ukončení procedury oddělené mezerami.

Omezení

- 2 \leq N \leq 100
- 1 \leq A_i \leq 100
- A_i \neq A_{i+1}
- Všechny hodnoty na vstupu jsou celá čísla.

Vzorový vstup 1

4
2 5 1 2

Vzorový výstup 1

2 3 4 5 4 3 2 1 2

Počáteční posloupnost je (2,5,1,2). Postup je následující.

- Mezi první člen 2 a druhý člen 5 vložíme 3,4, čímž vznikne posloupnost (2,3,4,5,1,2).
- Mezi čtvrtý člen 5 a pátý člen 1 vložíme 4,3,2, čímž vznikne posloupnost (2,3,4,5,4,3,2,1,2).

Vzorový vstup 2

6
3 4 5 6 5 4

Vzorový výstup 2

3 4 5 6 5 4

Nelze provést žádné vložení.

Máme posloupnost délky N skládající se z kladných celých čísel: A=(A_1,\ldots,A_N). Jakékoliv dva sousední členy mají různé hodnoty.
Vložme do této posloupnosti některá čísla podle následujícího postupu.

- Pokud má každý pár sousedních členů v A absolutní rozdíl 1, ukončete postup.
- Nechte A_i, A_{i+1} být nejbližším párem sousedních členů na začátku A, jejichž absolutní rozdíl není 1.
- Pokud A_i < A_{i+1}, vložte A_i+1,A_i+2,\ldots,A_{i+1}-1 mezi A_i a A_{i+1}.
- Pokud A_i > A_{i+1}, vložte A_i-1,A_i-2,\ldots,A_{i+1}+1 mezi A_i a A_{i+1}.

- Vraťte se na krok 1.

Vytiskněte posloupnost, když postup skončí.

Vstup

Vstup je zadán ze standardního vstupu následujícím formátem:
N
A_1 A_2 \ldots A_N

Výstup

Vytiskněte členy v posloupnosti, když postup skončí, oddělené mezerami.

Omezení

- 2 \leq N \leq 100
- 1 \leq A_i \leq 100
- A_i \neq A_{i+1}
- Všechny hodnoty ve vstupu jsou celá čísla.

Ukázkový Vstup 1

4
2 5 1 2

Ukázkový Výstup 1

2 3 4 5 4 3 2 1 2

Počáteční posloupnost je (2,5,1,2). Postup probíhá takto.

- Vloží se 3,4 mezi první člen 2 a druhý člen 5, čímž vznikne posloupnost (2,3,4,5,1,2).
- Vloží se 4,3,2 mezi čtvrtý člen 5 a pátý člen 1, čímž vznikne posloupnost (2,3,4,5,4,3,2,1,2).

Ukázkový Vstup 2

6
3 4 5 6 5 4

Ukázkový Výstup 2

3 4 5 6 5 4

Není možné provést žádné vložení.


Ve společnosti AtCoder Inc. je populární jednočlenná karetní hra.
Každá karta ve hře má na sobě napsáno malé anglické písmeno nebo symbol @. Každého druhu karet je dostatečné množství.
Hra probíhá následovně.

- Uspořádej stejný počet karet ve dvou řadách.
- Nahraď každou kartu s @ jednou z následujících karet: a, t, c, o, d, e, r.
- Pokud se obě řady karet shodují, vyhrál si. Jinak jsi prohrál.

Abys tento zápas vyhrál, udělej následující podvod.

- Kdykoliv po kroku 1 můžeš v rámci jedné řady libovolně přeuspořádat karty.

Byly zadány dva řetězce S a T, které představují dvě řady, které máš po kroku 1. Urči, zda je možné vyhrát, pokud je podvod povolen.

Vstup

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

Výstup

Pokud je možné vyhrát s povoleným podvodem, vytiskni Yes; jinak vytiskni No.

Omezení

- S a T se skládají z malých anglických písmen a @.
- Délky S a T jsou stejné a leží mezi 1 a 2\times 10^5 včetně.

Vzorový vstup 1

ch@ku@ai
choku@@i

Vzorový výstup 1

Yes

Můžeš nahradit @ tak, aby obě řady byly chokudai.

Vzorový vstup 2

ch@kud@i
akidu@ho

Vzorový výstup 2

Yes

Můžeš podvádět a nahradit @ tak, aby obě řady byly chokudai.

Vzorový vstup 3

aoki
@ok@

Vzorový výstup 3

No

Nemůžeš vyhrát ani díky podvádění.

Vzorový vstup 4

aa
bb

Vzorový výstup 4

No

Jednočlenná karetní hra je populární v AtCoder Inc.
Každá karta ve hře má na sobě napsáno malé anglické písmeno nebo symbol @. Pro každý druh karet je dostatečné množství.
Hra probíhá následovně.

- Uspořádejte stejný počet karet ve dvou řadách.
- Nahraďte každou kartu s @ jednou z následujících karet: a, t, c, o, d, e, r.
- Pokud se obě řady karet shodují, vyhráváte. Jinak prohráváte.

Abyste tento zápas vyhráli, uděláte následující podvod.

- Kdykoliv po kroku 1 můžete libovolně přeuspořádat karty v rámci jedné řady.

Jsou vám dány dva řetězce S a T, které představují dvě řady, které máte po kroku 1. Určete, zda je možné vyhrát, pokud je podvod povolen.

Vstup

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

Výstup

Pokud je možné vyhrát s povoleným podvodem, vytiskněte Yes; jinak vytiskněte No.

Omezení

- S a T se skládají z malých anglických písmen a @.
- Délky S a T jsou stejné a leží mezi 1 a 2\times 10^5 včetně.

Ukázkový vstup 1

ch@ku@ai
choku@@i

Ukázkový výstup 1

Yes

Můžete nahradit @ tak, aby obě řady byly chokudai.

Ukázkový vstup 2

ch@kud@i
akidu@ho

Ukázkový výstup 2

Yes

Můžete podvádit a nahradit @ tak, aby obě řady byly chokudai.

Ukázkový vstup 3

aoki
@ok@

Ukázkový výstup 3

No

Nemůžete vyhrát ani s podváděním.

Ukázkový vstup 4

aa
bb

Ukázkový výstup 4

No

Karetní hra pro jednoho hráče je oblíbená ve hře AtCoder Inc.
Na každé kartě ve hře je napsáno malé anglické písmeno nebo symbol @. Pro každý druh je k dispozici dostatečný počet karet.
Hra probíhá následovně.

- Uspořádejte stejný počet karet do dvou řad.
- Každou kartu s @ nahraďte jednou z následujících karet: a, t, c, o, d, e, r.
- Pokud se obě řady karet shodují, vyhráváte. V opačném případě prohráváte.

Chcete-li vyhrát tuto hru, provedete následující podvod.

- Po kroku 1 libovolně přeskládejte karty v rámci jedné řady, kdykoli se vám zachce.

Máte k dispozici dva řetězce S a T, které představují dvě řady, které máte po kroku 1. Určete, zda je možné vyhrát s povoleným podváděním.

Vstupní údaje

Vstup je zadán ze standardního vstupu v následujícím formátu:
S
T

Výstup

Pokud je možné vyhrát s povoleným podváděním, vypište Ano; v opačném případě vypište Ne.

Omezení

- S a T se skládají z malých anglických písmen a @.
- Délky S a T jsou stejné a v rozmezí 1 až 2\x 10^5 včetně.

Vzorový vstup 1

ch@ku@ai
choku@@i

Ukázkový výstup 1

Yes

Můžete nahradit znaky @ tak, aby se z obou řádků staly chokudai.

Vzorový vstup 2

ch@kud@i
akidu@ho

Ukázka výstupu 2

Yes

Můžete podvádět a nahradit @s tak, aby se z obou řádků staly chokudai.

Vzorový vstup 3

aoki
@ok@

Ukázka výstupu 3

No

Nemůžete vyhrát ani s podváděním.

Vzorový vstup 4

aa
bb

Ukázka výstupu 4

No