Дате су вам два цела броја, num и t.
Цео број x се назива достижним ако може постати једнак num након примене следеће операције највише t пута:

Повећајте или смањите x за 1, и истовремено повећајте или смањите num за 1.

Вратите максимални могући достижни број. Може се доказати да постоји најмање један достижни број.

Пример 1:

Улаз: num = 4, t = 1
Излаз: 6
Објашњење: Максимални достижни број је x = 6; може постати једнак num након што се изврши ова операција:
1- Смањите x за 1, и повећајте num за 1. Сада, x = 5 и num = 5.
Може се доказати да не постоји достижни број већи од 6.

Пример 2:

Улаз: num = 3, t = 2
Излаз: 7
Објашњење: Максимални достижни број је x = 7; након извршења ових операција, x ће бити једнак num:
1- Смањите x за 1, и повећајте num за 1. Сада, x = 6 и num = 4.
2- Смањите x за 1, и повећајте num за 1. Сада, x = 5 и num = 5.
Може се доказати да не постоји достижни број већи од 7.

Ограничења:

1 <= num, t <= 50

Дат вам је два цела броја, num и t.
Цео број x се назива достижан ако може постати једнак num након што се операција примени највише t пута:

- Повећајте или смањите x за 1, и истовремено повећајте или смањите num за 1.

Вратите максималан могући достижан број. Може се доказати да постоји барем један достижан број.

Пример 1:

Улаз: num = 4, t = 1
Излаз: 6
Објашњење: Максимални достижни број је x = 6; може постати једнак num након што се изврши ова операција:
1- Смањите x за 1, и повећајте num за 1. Сада, x = 5 и num = 5.
Може се доказати да не постоји достижни број већи од 6.

Пример 2:

Улаз: num = 3, t = 2
Излаз: 7
Објашњење: Максимални достижни број је x = 7; након извршења ових операција, x ће бити једнак num:
1- Смањите x за 1, и повећајте num за 1. Сада, x = 6 и num = 4.
2- Смањите x за 1, и повећајте num за 1. Сада, x = 5 и num = 5.
Може се доказати да не постоји достижни број већи од 7.

Ограничења:

1 <= num, t <= 50

Дати су вам два цела броја, num и t.
Цео број x се назива достижним ако може постати једнак num након примене следеће операције не више од t пута:

Повећајте или смањите x за 1, а истовремено повећајте или смањите num за 1.

Вратите максимални могући x који је достижан. Може се доказати да постоји бар један достижан x.

Пример 1:

Улаз: num = 4, t = 1
Излаз: 6
Објашњење:
Максимални достижни x је x = 6. Он може постати једнак num након извођења ове операције:

1- Смањите x за 1, а повећајте num за 1. Сада је x = 5 и num = 5.
Може се доказати да не постоји достижан x већи од 6.

Пример 2:

Улаз: num = 3, t = 2
Излаз: 7
Објашњење:
Максимални достижни x је x = 7. Након извођења ових операција, x ће постати једнак num:

1- Смањите x за 1, а повећајте num за 1. Сада је x = 6 и num = 4.
2- Смањите x за 1, а повећајте num за 1. Сада је x = 5 и num = 5.
Може се доказати да не постоји достижан x већи од 7.

Ограничења:

1 <= num, t <= 50


Дат је низ s који се састоји од малих енглеских слова, и дозвољено је извршити операције над њим. У једној операцији можете заменити један карактер у низу s неким другим малим енглеским словом.
Ваш задатак је да низ s претворите у палиндром са минималним бројем операција. Ако постоји више палиндрома који се могу добити уз минималан број операција, потребно је изабрати лексикографски најмањи.
Низ a је лексикографски мањи од низа b (исте дужине) ако се на првој позицији на којој се a и b разликују, слово у низу a појављује раније у абецеди од одговарајућег слова у низу b.
Вратите резултујући палиндром низ.

Пример 1:

Унос: s = "egcfe"
Излаз: "efcfe"
Објашњење: Минималан број операција да се "egcfe" претвори у палиндром је 1, а лексикографски најмањи палиндром који можемо добити модификацијом једног карактера је "efcfe", мењајући 'g'.

Пример 2:

Унос: s = "abcd"
Излаз: "abba"
Објашњење: Минималан број операција да се "abcd" претвори у палиндром је 2, а лексикографски најмањи палиндром који можемо добити модификацијом два карактера је "abba".

Пример 3:

Унос: s = "seven"
Излаз: "neven"
Објашњење: Минималан број операција да се "seven" претвори у палиндром је 1, а лексикографски најмањи палиндром који можемо добити модификацијом једног карактера је "neven".

Ограничења:

1 <= s.length <= 1000
s се састоји само од малих слова енглеске азбуке.

Дат је стринг s који се састоји од малих слова енглеске абецеде и дозвољено је да изводите операције на њему. У једној операцији можете заменити неки карактер у s другим малим словом енглеске абецеде.
Ваш задатак је да направите од s палиндром са минималним бројем операција. Ако постоји више палиндрома који се могу направити минималним бројем операција, направите лексикографски најмањи.
Стринг a је лексикографски мањи од стринга b (исте дужине) ако на првој позицији где се a и b разликују, стринг a има слово које се појављује раније у абецеди него одговарајуће слово у b.
Вратите резултујући палиндромски стринг.

Пример 1:

Улаз: s = "egcfe"
Излаз: "efcfe"
Објашњење: Минималан број операција да се "egcfe" претвори у палиндром је 1, а лексикографски најмањи палиндром који можемо добити модификацијом једног карактера је "efcfe", мењајући 'g'.

Пример 2:

Улаз: s = "abcd"
Излаз: "abba"
Објашњење: Минималан број операција да се "abcd" претвори у палиндром је 2, а лексикографски најмањи палиндром који можемо добити модификацијом два карактера је "abba".

Пример 3:

Улаз: s = "seven"
Излаз: "neven"
Објашњење: Минималан број операција да се "seven" претвори у палиндром је 1, а лексикографски најмањи палиндром који можемо добити модификацијом једног карактера је "neven".

Ограничења:

1 <= s.length <= 1000
s се састоји само од малих енглеских слова.

Дат вам је низ с који се састоји од малих енглеских слова и дозвољено вам је да извршавате операције на њему. У једној операцији можете заменити знак у с другим малим енглеским словом.
Ваш задатак је да направите палиндром са минималним могућим бројем операција. Ако постоји више палиндрома који се могу направити коришћењем минималног броја операција, направите лексикографски најмањи.
Низ а је лексикографски мањи од стринга б (исте дужине) ако на првој позицији где се а и б разликују, низ а има слово које се појављује раније у абецеди од одговарајућег слова у б.
Вратите резултујући низ палиндрома.

Пример 1:

Улаз: s = "egcfe"
Излаз: "efcfe"
Објашњење: Минимални број операција да "egcfe" буде палиндром је 1, а лексикографски најмањи низ палиндрома који можемо добити модификацијом једног карактера је "efcfe", променом 'g'.

Пример 2:

Улаз: s = "abcd"
Излаз: "abba"
Објашњење: Минимални број операција за претварање "abcd" у палиндром је 2, а лексикографски најмањи низ палиндрома који можемо добити модификацијом два карактера је "abba".

Пример 3:

Улаз: s = "seven"
Излаз:  "neven"
Објашњење: Минимални број операција да "seven" буде палиндром је 1, а лексикографски најмањи низ палиндрома који можемо добити модификацијом једног знака је "neven".

Ограничења:

1 <= s.length <= 1000
с се састоји само од малих енглеских слова.


Дат вам је бинарни низ s дужине n који можете применити два типа операција:

1. Изаберите индекс i и обрните све карактере од индекса 0 до индекса i (укључујући оба), уз трошак од i + 1.
2. Изаберите индекс i и обрните све карактере од индекса i до индекса n - 1 (укључујући оба), уз трошак од n - i.

Вратите минимални трошак да сви карактери низа буду исти.
Обртање карактера значи да ако је његова вредност '0', постаје '1', а ако је '1', постаје '0'.
Пример 1:

```
Унос: s = "0011"
Излаз: 2
Објашњење: Примените другу операцију са i = 2 да добијете s = "0000" уз цену од 2. Може се показати да је 2 минимална цена да сви карактери буду једнаки.
```

Пример 2:

```
Унос: s = "010101"
Излаз: 9
Објашњење: Примените прву операцију са i = 2 да добијете s = "101101" уз цену од 3.
Примените прву операцију са i = 1 да добијете s = "011101" уз цену од 2.
Примените прву операцију са i = 0 да добијете s = "111101" уз цену од 1.
Примените другу операцију са i = 4 да добијете s = "111110" уз цену од 2.
Примените другу операцију са i = 5 да добијете s = "111111" уз цену од 1.
Укупна цена да сви карактери буду једнаки је 9. Може се показати да је 9 минимална цена да сви карактери буду једнаки.

Ограничења:

1 <= s.length == n <= 10^5
s[i] је или '0' или '1'

Dat vam je binarni niz dužine \(n\) indeksiran od 0, \(s\), nad kojim možete primeniti dve vrste operacija:

1. Izaberite indeks \(i\) i invertujte sve karaktere od indeksa 0 do indeksa \(i\) (uključujući oba kraja), uz trošak \(i + 1\).
2. Izaberite indeks \(i\) i invertujte sve karaktere od indeksa \(i\) do indeksa \(n - 1\) (uključujući oba kraja), uz trošak \(n - i\).

Vratite minimalni trošak potreban da svi karakteri u nizu budu isti.
Inverzija karaktera znači da, ako je njegova vrednost '0', postaje '1' i obrnuto.

Primer 1:

**Ulaz:
`s = "0011"`

**Izlaz:**
`2`

**Objašnjenje:
Primeni drugu operaciju sa \(i = 2\), da bi se dobilo \(s = "0000"\), uz trošak od 2. Može se pokazati da je 2 minimalan trošak za izjednačavanje svih karaktera.

 Primer 2:

Ulaz:
`s = "010101"`

**Izlaz:**
`9`

**Objašnjenje:
1. Primeni prvu operaciju sa \(i = 2\), da bi se dobilo \(s = "101101"\), uz trošak od 3.
2. Primeni prvu operaciju sa \(i = 1\), da bi se dobilo \(s = "011101"\), uz trošak od 2.
3. Primeni prvu operaciju sa \(i = 0\), da bi se dobilo \(s = "111101"\), uz trošak od 1.
4. Primeni drugu operaciju sa \(i = 4\), da bi se dobilo \(s = "111110"\), uz trošak od 2.
5. Primeni drugu operaciju sa \(i = 5\), da bi se dobilo \(s = "111111"\), uz trošak od 1.

Ukupan trošak za izjednačavanje svih karaktera je 9. Može se pokazati da je 9 minimalan trošak.

Ograničenja:
- \(1 \leq s.\text{length} = n \leq 10^5\)
- \(s[i]\) je ili '0' ili '1'.

Дати су вам бинарни низ s дужине n са индексима 0 на којем можете примењивати два типа операција:

Изаберите индекс i и обрните све карактере од индекса 0 до индекса i (оба укључена), са трошком i + 1.
Изаберите индекс i и обрните све карактере од индекса i до индекса n - 1 (оба укључена), са трошком n - i.

Вратите минимални трошак да сви карактери низа буду исти.
Обртање карактера значи да ако је његова вредност '0', постаје '1', а ако је '1', постаје '0'.

Пример 1:

Улаз: s = "0011"
Излаз: 2
Објашњење: Примените другу операцију са i = 2 да добијете s = "0000" уз трошак од 2. Може се показати да је 2 минимални трошак да сви карактери буду једнаки.

Пример 2:

Улаз: s = "010101"
Излаз: 9
Објашњење: Примените прву операцију са i = 2 да добијете s = "101101" уз трошак од 3.
Примените прву операцију са i = 1 да добијете s = "011101" уз трошак од 2.
Примените прву операцију са i = 0 да добијете s = "111101" уз трошак од 1.
Примените другу операцију са i = 4 да добијете s = "111110" уз трошак од 2.
Примените другу операцију са i = 5 да добијете s = "111111" уз трошак од 1.
Укупн трошак да сви карактери буду једнаки је 9. Може се показати да је 9 минимални трошак да сви карактери буду једнаки.

Ограничења:

1 <= s.length == n <= 10^5
s[i] is either '0' or '1'


Дат је позитиван цео број num представљен као стринг, вратите цео број num без завршних нула као стринг.

Пример 1:

Улаз: num = "51230100"
Излаз: "512301"
Објашњење: Цео број "51230100" има 2 завршне нуле, уклањамо их и враћамо цео број "512301".

Пример 2:

Улаз: num = "123"
Излаз: "123"
Објашњење: Цео број "123" нема завршних нула, враћамо цео број "123".

Ограничења:

1 <= num.length <= 1000
num се састоји само од цифара.
num нема никакве водеће нуле.

Дат је позитиван цео број num представљен као стринг. Вратите број num без завршних нула, такође као стринг.

Пример 1:

Улаз: num = "51230100"
Излаз: "512301"
Објашњење: Цео број "51230100" има 2 завршне нуле, уклањамо их и враћамо цео број "512301".

Пример 2:

Улаз: num = "123"
Излаз: "123"
Објашњење: Цео број "123" нема завршних нула, враћамо цео број "123".

Ограничења:

1 <= num.length <= 1000
num се састоји само од цифара.
num нема никакве водеће нуле.

Ако је дат позитиван цео број представљен као стринг, вратите цео број без завршних нула као стринг.

Пример 1:

Улаз: num = "51230100"
Излаз: "512301"
Објашњење: Цео број "51230100" има 2 задње нуле, уклањамо их и враћамо цео број "512301".

Пример 2:

Улаз: num = "123"
Излаз: "123"
Објашњење: Цео број "123" нема нуле на крају, враћамо цео број "123".

Ограничења:

1 <= num.length <= 1000
број се састоји само од цифара.
нум нема водеће нуле.


Дат вам је цео број n који се састоји од тачно 3 цифре.
Ми зовемо број n фасцинантним ако, након следеће модификације, добијени број садржи све цифре од 1 до 9 тачно једном и не садржи никакве 0:

Конкатенишите n са бројевима 2 * n и 3 * n.

Вратите true ако је n фасцинантан, или false у супротном.
Конкатенисање два броја значи спајање заједно. На пример, конкатенација бројева 121 и 371 је 121371.

Пример 1:

Улаз: n = 192
Излаз: true
Објашњење: Конкатенишемо бројеве n = 192 и 2 * n = 384 и 3 * n = 576. Резултат је 192384576. Овај број садржи све цифре од 1 до 9 тачно једном.

Пример 2:

Улаз: n = 100
Излаз: false
Објашњење: Конкатенишемо бројеве n = 100 и 2 * n = 200 и 3 * n = 300. Резултат је 100200300. Овај број не задовољава ниједан од услова.

Ограничења:

100 <= n <= 999

Имамо дати цео број n који се састоји тачно од 3 цифре.
Називамо број n фасцинантним ако, након следеће модификације, резултујући број садржи све цифре од 1 до 9 тачно једанпут и не садржи ниједну 0:

Конкатенишите n са бројевима 2 * n и 3 * n.

Вратите тачно ако је n фасцинантан, или нетачно у супротном.
Конкатенисање два броја значи спајање заједно. На пример, конкатенација бројева 121 и 371 је 121371.

Пример 1:

Улаз: n = 192
Излаз: тачно
Објашњење: Конкатенишемо бројеве n = 192 и 2 * n = 384 и 3 * n = 576. Резултујући број је 192384576. Овај број садржи све цифре од 1 до 9 тачно једном.

Пример 2:

Улаз: n = 100
Излаз: нетачно
Објашњење: Конкатенишемо бројеве n = 100 и 2 * n = 200 и 3 * n = 300. Резултујући број је 100200300. Овај број не задовољава ниједан од услова.

Ограничења:

100 <= n <= 999

Дат вам је цео број n који се састоји од тачно 3 цифре.
Број n називамо фасцинантним ако, након следеће измене, резултујући број садржи све цифре од 1 до 9 тачно једном и не садржи никакве 0-це:

Конкатенирајте n са бројевима 2 * n и 3 * n.

Вратите true ако је n фасцинантан, или false у супротном.
Конкатенација два броја значи да их спојите. На пример, конкатенација бројева 121 и 371 је 121371.

Пример 1:

Улаз: n = 192
Излаз: тачно
Објашњење: Конкатенишемо бројеве n = 192 и 2 * n = 384 и 3 * n = 576. Резултујући број је 192384576. Овај број садржи све цифре од 1 до 9 тачно једном.

Пример 2:

Улаз: n = 100
Излаз: нетачно
Објашњење: Конкатенишемо бројеве n = 100 и 2 * n = 200 и 3 * n = 300. Резултујући број је 100200300. Овај број не задовољава ниједан од услова.

Ограничења:

100 <= n <= 999


Дат вам је 0-индексирани низ с. Понављајте следећу операцију било који број пута:

Изаберите индекс i у низу и нека c буде карактер на позицији i. Обришите најближи појављивање c лево од i (ако постоји) и најближи појављивање c десно од i (ако постоји).

Ваш задатак је да минимизирате дужину низа с извршавањем горње операције било који број пута. Вратите цео број који означава дужину минимизираног низа.

Пример 1:

Улаз: s = "aaabc"
Излаз: 3
Објашњење: У овом примеру, s је "aaabc". Можемо започети избором карактера 'a' на индексу 1. Затим уклањамо најближу појаву 'a' лево од индекса 1, која је на индексу 0, и најближу појаву 'a' десно од индекса 1, која је на индексу 2. Након ове операције, низ постаје "abc". Било која даља операција коју изведемо на низу оставиће га непромењеним. Према томе, дужина минимизоване низе је 3.

Пример 2:

Улаз: s = "cbbd"
Излаз: 3
Објашњење: За ово можемо започети са карактером 'b' на индексу 1. Нема појаве 'b' лево од индекса 1, али постоји појава десно на индексу 2, тако да бришемо 'b' на индексу 2. Низ постаје "cbd" и даље операције ће га оставити непромењеним. Стога, минимизована дужина је 3.

Пример 3:

Улаз: s = "dddaaa"
Излаз: 2
Објашњење: За ово можемо да почнемо са карактером 'd' на индексу 1. Најближа појава 'd' лево је на индексу 0, а најближа појава 'd' десно је на индексу 2. Бришемо оба индекса 0 и 2, тако да низ постаје "daaa". У новом низу можемо изабрати карактер 'a' на индексу 2. Најближа појава 'a' лево је на индексу 1, а најближа појава 'a' десно је на индексу 3. Бришемо обоје, и низ постаје "da". Ово више не можемо минимизовати, па је минимизована дужина 2.

Ограничења:

1 <= s.length <= 100
s садржи само мала слова енглеског алфабета

С обзиром на 0-индексирани низ S, више пута изводи следећи рад било који број пута:

Изаберите индекс i у низу и нека c буде знак у положају i. Избришите најближу појаву c у лево од И (ако их има) и најближе појаве c удесно од i (ако их има).

Ваш задатак је да смањите дужину с вршењем горње операције било који број пута.
Вратите цели број који означава дужину минимизираног низа.

Пример 1:

ИНПУТ: s = "aaabc"
Излаз: 3
Објашњење: У овом примеру, s је "aaabc". Можемо започети избором карактера 'a' на индексу 1. Затим уклањамо најближу појаву 'a' лево од индекса 1, која је на индексу 0, и најближу појаву 'a' десно од индекса 1, која је на индексу 2. Након ове операције, низ постаје "abc". Било која даља операција коју изведемо на низу оставиће га непромењеним. Према томе, дужина минимизоване низе је 3.

Пример 2:

Улаз: s = "cbbd"
Излаз: 3
Објашњење: За ово можемо започети са карактером 'b' на индексу 1. Нема појаве 'b' лево од индекса 1, али постоји појава десно на индексу 2, тако да бришемо 'b' на индексу 2. Низ постаје "cbd" и даље операције ће га оставити непромењеним. Стога, минимизована дужина је 3.
Пример 3:

Улаз: s = "dddaaa"
Излаз: 2
Објашњење: За ово можемо да почнемо са карактером 'd' на индексу 1. Најближа појава 'd' лево је на индексу 0, а најближа појава 'd' десно је на индексу 2. Бришемо оба индекса 0 и 2, тако да низ постаје "daaa". У новом низу можемо изабрати карактер 'a' на индексу 2. Најближа појава 'a' лево је на индексу 1, а најближа појава 'a' десно је на индексу 3. Бришемо обоје, и низ постаје "da". Ово више не можемо минимизовати, па је минимизована дужина 2.

Ограничења:

1 <= s.length <= 100
s садржи само мала слова енглеског језика

Дат је стринг s који је индексован од 0. Понављајте следећу операцију било који број пута:

Изаберите индекс i у стрингу и нека c буде знак на позицији i. Уклоните најближи појаву c лево од i (ако постоји) и најближи појаву c десно од i (ако постоји).

Ваш задатак је да минимизујете дужину стринга s извршавајући горњу операцију било који број пута. Вратите цео број који представља дужину минимизованог стринга.

Пример 1:

Улаз: s = "aaabc"
Излаз: 3
Објашњење: У овом примеру, s је "aaabc". Можемо почети тако што ћемо изабрати знак 'a' на индексу 1. Затим уклањамо најближи 'a' лево од индекса 1, који се налази на индексу 0, и најближи 'a' десно од индекса 1, који се налази на индексу 2. Након ове операције, стринг постаје "abc". Свака даља операција коју изведемо на стрингу неће га променити. Стога, дужина минимизованог стринга је 3.

Пример 2:

Улаз: s = "cbbd"
Излаз: 3
Објашњење: За ово можемо почети са знаком 'b' на индексу 1. Нема појаве 'b' лево од индекса 1, али постоји једна са десне стране на индексу 2, па брисемо 'b' на индексу 2. Стринг постаје "cbd" и даље операције неће га променити. Стога, минимизована дужина је 3.

Пример 3:

Улаз: s = "dddaaa"
Излаз: 2
Објашњење: За ово, можемо почети са знаком 'd' на индексу 1. Најближа појава 'd' са леве стране је на индексу 0, а најближа појава 'd' са десне стране је на индексу 2. Брисемо индексе 0 и 2, тако да стринг постаје "daaa". У новом стрингу, можемо изабрати знак 'a' на индексу 2. Најближа појава 'a' са леве стране је на индексу 1, а најближа појава 'a' са десне стране је на индексу 3. Брисемо оба, и стринг постаје "da". Не можемо даље минимизовати, тако да је минимизована дужина 2.

Ограничења:

1 <= s.length <= 100
s садржи само мала слова енглеског алфабета


Дат вам је низ целих бројева `nums` са 0-индиксацијом, и дозвољено је кретање између његових индекса. Можете се кретати између индекса `i` и `j`, `i != j`, ако и само ако је `gcd(nums[i], nums[j]) > 1`, где је `gcd` највећи заједнички делилац.

Ваш задатак је да утврдите да ли за сваки пар индекса `i` и `j` у `nums`, где је `i < j`, постоји низ прелажења који нас може одвести од `i` до `j`.

Вратите `true` ако је могуће кретати се између свих таквих парова индекса, или `false` у противном.

Пример 1:

Унос: `nums = [2,3,6]`
Излаз: `true`
Објашњење: У овом примеру, постоје 3 могућа пара индекса: (0, 1), (0, 2) и (1, 2).
Да бисмо прошли од индекса 0 до индекса 1, можемо користити низ прелажења 0 -> 2 -> 1, где се крећемо од индекса 0 до индекса 2 јер је `gcd(nums[0], nums[2]) = gcd(2, 6) = 2 > 1`, а затим се крећемо од индекса 2 до индекса 1 јер је `gcd(nums[2], nums[1]) = gcd(6, 3) = 3 > 1`.
Да бисмо прошли од индекса 0 до индекса 2, можемо ићи директно јер је `gcd(nums[0], nums[2]) = gcd(2, 6) = 2 > 1`. Исто тако, да бисмо прошли од индекса 1 до индекса 2, можемо ићи директно јер је `gcd(nums[1], nums[2]) = gcd(3, 6) = 3 > 1`.

Пример 2:

Унос: `nums = [3,9,5]`
Излаз: `false`
Објашњење: Ниједан низ прелажења нас не може одвести од индекса 0 до индекса 2 у овом примеру. Дакле, враћамо `false`.

Пример 3:

Унос: `nums = [4,3,12,8]`
Излаз: `true`
Објашњење: Постоји 6 могућих парова индекса за прелаз: (0, 1), (0, 2), (0, 3), (1, 2), (1, 3) и (2, 3). Постоји валидан низ прелажења за сваки пар, па враћамо `true`.

Ограничења:

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

Дат вам је низ целих бројева nums са 0-индиксацијом, и дозвољено је кретање између његових индекса. Можете се кретати између индекса i и j, i != j, ако и само ако је gcd(nums[i], nums[j]) > 1, где је gcd највећи заједнички делилац.

Ваш задатак је да утврдите да ли за сваки пар индекса i и j у nums, где је i < j, постоји низ прелажења који нас може одвести од i до j.

Вратите true ако је могуће кретати се између свих таквих парова индекса, или false у противном.

Пример 1:

Улаз: nums = [2,3,6]
Излаз: true
Објашњење: У овом примеру, постоје 3 могућа пара индекса: (0, 1), (0, 2) и (1, 2).
Да бисмо прошли од индекса 0 до индекса 1, можемо користити низ прелажења 0 -> 2 -> 1, где се крећемо од индекса 0 до индекса 2 јер је gcd(nums[0], nums[2]) = gcd(2, 6) = 2 > 1, а затим се крећемо од индекса 2 до индекса 1 јер је gcd(nums[2], nums[1]) = gcd(6, 3) = 3 > 1.
Да бисмо прошли од индекса 0 до индекса 2, можемо ићи директно јер је gcd(nums[0], nums[2]) = gcd(2, 6) = 2 > 1. Исто тако, да бисмо прошли од индекса 1 до индекса 2, можемо ићи директно јер је gcd(nums[1], nums[2]) = gcd(3, 6) = 3 > 1.

Пример 2:

Улаз: nums = [3,9,5]
Излаз: false
Објашњење: Ниједан низ прелажења нас не може одвести од индекса 0 до индекса 2 у овом примеру. Дакле, враћамо false.

Пример 3:

Улаз: nums = [4,3,12,8]
Излаз: true
Објашњење: Постоји 6 могућих парова индекса за прелаз: (0, 1), (0, 2), (0, 3), (1, 2), (1, 3) и (2, 3). Постоји валидан низ прелажења за сваки пар, па враћамо true.

Ограничења:

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


Here is the translation of the given text into Serbian (Cyrillic script):

Дат вам је низ знакова s који се састоји само од малих енглеских слова. У једној операцији можете урадити следеће:

Изаберите било који непразан подниз s, могуће и цео низ, а затим замените свако његово слово претходним словом у енглеском алфабету. На пример, 'b' се претвара у 'a', а 'a' се претвара у 'z'.

Вратите лексикографски најмањи низ који можете добити након што извршите горе описану операцију тачно једном.
Подниз је континуирана секвенца знакова у низу.
Низ x је лексикографски мањи од низа y исте дужине ако x[i] долази пре y[i] у абецедном редоследу за прву позицију i где се x[i] != y[i].

Пример 1:

Улаз: s = "cbabc"
Излаз: "baabc"
Објашњење: Операцију примењујемо на подстринг који почиње на индексу 0 и завршава на индексу 1 укључујући.
Може се доказати да је резултујући стринг лексикографски најмањи.

Пример 2:

Улаз: s = "acbbc"
Излаз: "abaab"
Објашњење: Операцију примењујемо на подстринг који почиње на индексу 1 и завршава на индексу 4 укључујући.
Може се доказати да је резултујући стринг лексикографски најмањи.

Пример 3:

Улаз: s = "leetcode"
Излаз: "kddsbncd"
Објашњење: Операцију примењујемо на цео стринг.
Може се доказати да је резултујући стринг лексикографски најмањи.

Ограничења:

1 <= s.length <= 3 * 10^5
s се састоји од малих енглеских слова.

Дат вам је низ с који се састоји само од малих слова енглеског језика. У једној операцији можете урадити следеће:

Изаберите било који непразан подниз од с, можда цео стринг, а затим замените сваки од његових знакова претходним знаком енглеског алфабета. На пример, 'b' се претвара у 'а', а 'а' се конвертује у 'z'.

Вратите лексикографски најмањи стринг који можете добити након што извршите горњу операцију тачно једном.
Подниз је непрекидни низ знакова у низу.
Низ к је лексикографски мањи од низа и исте дужине ако к[и] долази испред и[и] по абецедном реду за прву позицију и тако да је x[i] != y[i].

Пример 1:

Улаз: s = "cbabc"
Излаз: "baabc"
Објашњење: Примењујемо операцију на поднизу почевши од индекса 0, и завршавајући са индексом 1 укључујући.
Може се доказати да је резултујући низ лексикографски најмањи.

Пример 2:

Улаз: s = "acbbc"
Излаз: "abaab"
Објашњење: Примењујемо операцију на поднизу почевши од индекса 1, и завршавајући са индексом 4 укључујући.
Може се доказати да је резултујући низ лексикографски најмањи.

Пример 3:

Улаз:s = "leetcode"
Излаз: "kddsbncd"
Објашњење: Операцију примењујемо на цео низ.
Може се доказати да је резултујући низ лексикографски најмањи.

Ограничења:

1 <= s.length <= 3 * 10^5
s се састоји од малих енглеских слова

Дата је ниска s која се састоји само од малих енглеских слова. У једној операцији, можете урадити следеће:

Одаберите било која непразна подниска од s, могуће цела ниска, затим замените сваки његов карактер претходним карактером у енглеској абецеди. На пример, 'b' се претвара у 'a', а 'a' се претвара у 'z'.

Вратите лексикографски најмању ниску коју можете добити након што извршите горе описану операцију тачно једном.
Подниска је континуирани низ карактера унутар неке ниске.
Ниска x је лексикографска мања од ниске y исте дужине ако x[i] долази пре y[i] у азбучном реду за прву позицију i такву да је x[i] != y[i].

Пример 1:

Улаз: s = "cbabc"
Излаз: "baabc"
Објашњење: Примењујемо операцију на подниску која почиње од индекса 0 и завршава се на индексу 1 (укључиво).
Може се доказати да је добијена ниска лексикографски најмања.

Пример 2:

Улаз: s = "acbbc"
Излаз: "abaab"
Објашњење: Операцију примењујемо на подниску која почиње на индексу 1 и завршава на индексу 4 укључујући.
Може се доказати да је резултујућа ниска лексикографска најмања.

Пример 3:

Улаз: s = "leetcode"
Излаз: "kddsbncd"
Објашњење: Операцију примењујемо на целу ниску.
Може се доказати да је резултујућа ниска лексикографска најмања.

Ограничења:

1 <= s.length <= 3 * 10^5
s се састоји од малих енглеских слова.


Дат вам је низ целих бројева nums са индексом 0. Пар индекса i, j где је 0 <= i < j < nums.length назива се леп ако су прва цифра nums[i] и последња цифра nums[j] међусобно просте.
Врати укупан број лепих парова у nums.
Два цела броја x и y су међусобно просте ако не постоји број већи од 1 који дели оба. Другим речима, x и y су међусобно просте ако је gcd(x, y) == 1, где је gcd(x, y) највећи заједнички делилац од x и y.

Пример 1:

Улаз: nums = [2,5,1,4]
Излаз: 5
Објашњење: Постоји 5 прелепих парова у nums:
Када је i = 0 и j = 1: прва цифра од nums[0] је 2, а последња цифра од nums[1] је 5. Можемо потврдити да су 2 и 5 међусобно просте, будући да је gcd(2,5) == 1.
Када је i = 0 и j = 2: прва цифра од nums[0] је 2, а последња цифра од nums[2] је 1. Заиста, gcd(2,1) == 1.
Када је i = 1 и j = 2: прва цифра од nums[1] је 5, а последња цифра од nums[2] је 1. Заиста, gcd(5,1) == 1.
Када је i = 1 и j = 3: прва цифра од nums[1] је 5, а последња цифра од nums[3] је 4. Заиста, gcd(5,4) == 1.
Када је i = 2 и j = 3: прва цифра од nums[2] је 1, а последња цифра од nums[3] је 4. Заиста, gcd(1,4) == 1.
Дакле, враћамо 5.

Пример 2:

Улаз: nums = [11,21,12]
Излаз: 2
Објашњење: Постоје 2 прелепа пара:
Када је i = 0 и j = 1: прва цифра од nums[0] је 1, а последња цифра од nums[1] је 1. Заиста, gcd(1,1) == 1.
Када је i = 0 и j = 2: прва цифра од nums[0] је 1, а последња цифра од nums[2] је 2. Заиста, gcd(1,2) == 1.
Дакле, враћамо 2.

Ограничења:

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

Дат вам је низ целих бројева nums са индексом 0. Пар индекса i, j где је 0 <= i < j < nums.length назива се леп ако су прва цифра nums[i] и последња цифра nums[j] међусобно просте.

Вратите укупан број лепих парова у nums. Два цела броја x и y су међусобно просте ако не постоји број већи од 1 који дели оба. Другим речима, x и y су међусобно просте ако је gcd(x, y) == 1, где је gcd(x, y) највећи заједнички делилац од x и y.

Пример 1:

Улаз: nums = [2,5,1,4]
Излаз: 5
Објашњење: Постоји 5 лепих парова у nums:
Када је i = 0 и j = 1: прва цифра од nums[0] је 2, а последња цифра од nums[1] је 5. Можемо потврдити да су 2 и 5 међусобно просте, будући да је gcd(2,5) == 1.
Када је i = 0 и j = 2: прва цифра од nums[0] је 2, а последња цифра од nums[2] је 1. Заиста, gcd(2,1) == 1.
Када је i = 1 и j = 2: прва цифра од nums[1] је 5, а последња цифра од nums[2] је 1. Заиста, gcd(5,1) == 1.
Када је i = 1 и j = 3: прва цифра од nums[1] је 5, а последња цифра од nums[3] је 4. Заиста, gcd(5,4) == 1.
Када је i = 2 и j = 3: прва цифра од nums[2] је 1, а последња цифра од nums[3] је 4. Заиста, gcd(1,4) == 1.
Према томе, враћамо 5.

Пример 2:

Улаз: nums = [11,21,12]
Излаз: 2
Објашњење: Постоје 2 лепа пара:
Када је i = 0 и j = 1: прва цифра од nums[0] је 1, а последња цифра од nums[1] је 1. Заиста, gcd(1,1) == 1.
Када је i = 0 и j = 2: прва цифра од nums[0] је 1, а последња цифра од nums[2] је 2. Заиста, gcd(1,2) == 1.
Према томе, враћамо 2.

Ограничења:

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

Дат вам је низ целих бројева nums са индексом 0. Пар индекса i, j где је 0 <= i < j < nums.length назива се леп ако су прва цифра nums[i] и последња цифра nums[j] међусобно просте.
Врати укупан број лепих парова у nums.
Два цела броја x и y су међусобно просте ако не постоји број већи од 1 који дели оба. Другим речима, x и y су међусобно просте ако је gcd(x, y) == 1, где је gcd(x, y) највећи заједнички делилац од x и y.

Пример 1:

Улаз: nums = [2,5,1,4]
Излаз: 5
Објашњење: Постоји 5 лепих парова у nums:
Када је i = 0 и j = 1: прва цифра од nums[0] је 2, а последња цифра од nums[1] је 5. Можемо потврдити да су 2 и 5 међусобно просте, будући да је gcd(2,5) == 1.
Када је i = 0 и j = 2: прва цифра од nums[0] је 2, а последња цифра од nums[2] је 1. Заиста, gcd(2,1) == 1.
Када је i = 1 и j = 2: прва цифра од nums[1] је 5, а последња цифра од nums[2] је 1. Заиста, gcd(5,1) == 1.
Када је i = 1 и j = 3: прва цифра од nums[1] је 5, а последња цифра од nums[3] је 4. Заиста, gcd(5,4) == 1.
Када је i = 2 и j = 3: прва цифра од nums[2] је 1, а последња цифра од nums[3] је 4. Заиста, gcd(1,4) == 1.
Дакле, враћамо 5.

Пример 2:

Улаз: nums = [11,21,12]
Излаз: 2
Објашњење: Постоје 2 прелепа пара:
Када је i = 0 и j = 1: прва цифра од nums[0] је 1, а последња цифра од nums[1] је 1. Заиста, gcd(1,1) == 1.
Када је i = 0 и j = 2: прва цифра од nums[0] је 1, а последња цифра од nums[2] је 2. Заиста, gcd(1,2) == 1.
Дакле, враћамо 2.

Ограничења:

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


Дат вам је 0-индексиран низ целих бројева nums и цели број k.
Подниз се назива једнаким ако су сви његови елементи исти. Пазите: Празан подниз је такође једнак подниз.
Вратите дужину најдужег могућег једнаког подниза након брисања највише k елемената из низа nums.
Подниз је континуирана, могуће празна секвенца елемената унутар низа.

Пример 1:

Улаз: nums = [1,3,2,3,1,3], k = 3
Излаз: 3
Објашњење: Оптимално је избрисати елементе на индексима 2 и 4.
Након њиховог брисања, nums постаје једнако [1, 3, 3, 3].
Најдужи једнаки подниз почиње на i = 1 и завршава се на j = 3 са дужином једнаком 3.
Може се доказати да се не могу направити дужи једнаки поднизови.

Пример 2:

Улаз: nums = [1,1,2,2,1,1], k = 2
Излаз: 4
Објашњење: Оптимално је избрисати елементе на индексима 2 и 3.
Након њиховог брисања, nums постаје једнако [1, 1, 1, 1].
Сам низ је једнаки подниз, тако да је одговор 4.
Може се доказати да се не могу направити дужи једнаки поднизови.

Ограничења:

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

Дат вам је низ целих бројева са индексом 0, nums и цео број k.
Поднизу се назива једнаком ако су сви његови елементи једнаки. Имајте на уму да је празан подниз једнак подниз.
Вратите дужину најдужег могућег једнаког подниза након брисања највише k елемената из nums.
Подниз је континууалан, могуће празан, низ елемената унутар низа.

Пример 1:

Улаз: nums = [1,3,2,3,1,3], k = 3
Излаз: 3
Објашњење: Оптимално је избрисати елементе на индексима 2 и 4.
Након њиховог брисања, nums постаје једнако [1, 3, 3, 3].
Најдужи једнаки подниз почиње на i = 1 и завршава се на j = 3 са дужином једнаком 3.
Може се доказати да се не могу направити дужи једнаки поднизови.

Пример 2:

Улаз: nums = [1,1,2,2,1,1], k = 2
Излаз: 4
Објашњење: Оптимално је избрисати елементе на индексима 2 и 3.
Након њиховог брисања, nums постаје једнако [1, 1, 1, 1].
Сам низ је једнаки подниз, тако да је одговор 4.
Може се доказати да се не могу направити дужи једнаки поднизови.

Ограничења:

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

Дат вам је 0-индексиран низ целих бројева nums и целобројни број k.
Подниз се назива једнак ако су сви његови елементи једнаки. Напомена: Празан подниз је такође једнак подниз.
Вратите дужину најдужег могућег једнаког подниза након што избришете највише k елемената из nums.
Подниз је континуирана, могуће празна секвенца елемената унутар низа.

Пример 1:

Улаз: nums = [1,3,2,3,1,3], k = 3
Излаз: 3
Објашњење: Оптимално је избрисати елементе на индексима 2 и 4.
Након њиховог брисања, nums постаје једнако [1, 3, 3, 3].
Најдужи једнаки подниз почиње на i = 1 и завршава се на j = 3 са дужином једнаком 3.
Може се доказати да се не могу направити дужи једнаки поднизови.

Пример 2:

Улаз: nums = [1,1,2,2,1,1], k = 2
Излаз: 4
Објашњење: Оптимално је избрисати елементе на индексима 2 и 3.
Након њиховог брисања, nums постаје једнако [1, 1, 1, 1].
Сам низ је једнаки подниз, тако да је одговор 4.
Може се доказати да се не могу направити дужи једнаки поднизови.

Ограничења:

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


Дат вам је целобројни број n који представља укупни број сервера и 2D низ целих бројева logs, где logs[i] = [server_id, time] означава да је сервер са id server_id примио захтев у времену time.
Такође вам је дат целобројни број x и 0-индексиран низ целих бројева queries.
Вратите 0-индексирани целобројни низ arr дужине queries.length где arr[i] представља број сервера који нису примили никакве захтеве током временског интервала [queries[i] - x, queries[i]].
Напомена: временски интервали су укључиви.

Пример 1:

Input: n = 3, logs = [[1,3],[2,6],[1,5]], x = 5, queries = [10,11]
Output: [1,2]
Објашњење:
За queries[0]: Сервери са ид 1 и 2 добијају захтеве у трајању од [5, 10]. Дакле, само сервер 3 не добија ниједан захтев.
За queries[1]: Само сервер са ид 2 добија захтев у трајању од [6,11]. Дакле, сервери са ид 1 и 3 су једини сервери који не добијају захтеве у том временском периоду.

Пример 2:

Input: n = 3, logs = [[2,4],[2,1],[1,2],[3,1]], x = 2, queries = [3,4]
Output: [0,1]
Објашњење:
За queries[0]: Сви сервери добијају бар један захтев у трајању од [1, 3].
За queries[1]: Само сервер са ид 3 не добија захтев у трајању од [2,4].

Ограничења:

1 <= n <= 10^5
1 <= logs.length <= 10^5
1 <= queries.length <= 10^5
logs[i].length == 2
1 <= logs[i][0] <= n
1 <= logs[i][1] <= 10^6
1 <= x <= 10^5
x < queries[i] <= 10^6

Добијате цео број н који означава укупан број сервера и 2D 0-индексирани цео низ дневника, где logs[i] = [server_id, time] означава да је сервер са ид сервер_ид примио захтев у времену.
Такође вам се дају целобројни x и 0-индексирани целобројни низови упити.
Вратите целобројни низ 0-индексираних арр дужине queries.length где арр[и] представља број сервера који нису примили никакве захтеве током временског интервала [queries[i] - x, queries[i]].
Имајте на уму да су временски интервали инклузивни.

Пример 1:

Улаз : n = 3, logs = [[1,3],[2,6],[1,5]], x = 5, queries = [10,11]
Излаз : [1,2]
Објашњење:
За queries[0]: Сервери са идс 1 и 2 добијају захтеве у трајању од [5, 10]. Дакле, само сервер 3 не добија ниједан захтев.
За queries[1]: Само сервер са ид 2 добија захтев у трајању од [6,11]. Дакле , сервери са ИДС 1 и 3 су једини сервери који не примају никакве захтеве у том временском периоду.

Пример 2:

Улаз : n = 3, logs = [[2,4],[2,1],[1,2],[3,1]], x = 2, queries = [3,4]
Излаз : [0,1]
Објашњење:
За queries[0]: Сви сервери добијају најмање један захтев у трајању од [1, 3].
За queries[1]: Само сервер са ид 3 не добија захтев у трајању [2,4].

Ограничења:

1 <= n <= 10^5
1 <= logs.length <= 10^5
1 <= queries.length <= 10^5
logs[i].length == 2
1 <= logs[i][0] <= n
1 <= logs[i][1] <= 10^6
1 <= x <= 10^5
x < queries[i] <= 10^6

Дат је цео број n који означава укупан број сервера и 2D низ целих бројева logs са индексима почев од 0, где logs[i] = [server_id, time] означава да је сервер са ид server_id примио захтев у време time.
Дат је и цео број x и низ целих бројева queries са индексима почев од 0.
Вратите низ целих бројева arr са индексима почев од 0, дужине queries.length, где arr[i] представља број сервера који нису примили ниједан захтев током временског интервала [queries[i] - x, queries[i]].
Запамтите да су временски интервали инклузивни.

Пример 1:

Улаз: n = 3, logs = [[1,3],[2,6],[1,5]], x = 5, queries = [10,11]
Излаз: [1,2]
Објашњење:
За queries[0]: Сервери са ид 1 и 2 добијају захтеве у трајању од [5, 10]. Дакле, само сервер 3 не добија ниједан захтев.
За queries[1]: Само сервер са ид 2 добија захтев у трајању од [6,11]. Дакле, сервери са ид 1 и 3 су једини сервери који не добијају захтеве у том временском периоду.

Пример 2:

Улаз: n = 3, logs = [[2,4],[2,1],[1,2],[3,1]], x = 2, queries = [3,4]
Излаз: [0,1]
Објашњење:
За queries[0]: Сви сервери добијају бар један захтев у трајању од [1, 3].
За queries[1]: Само сервер са ид 3 не добија захтев у трајању од [2,4].

Ограничења:

1 <= n <= 10^5
1 <= logs.length <= 10^5
1 <= queries.length <= 10^5
logs[i].length == 2
1 <= logs[i][0] <= n
1 <= logs[i][1] <= 10^6
1 <= x <= 10^5
x < queries[i] <= 10^6


Дат је нумерисани низ nums са почетним позицијама кликера. Такође су дати низови moveFrom и moveTo једнаке дужине. Током moveFrom.length корака, мењаћете позиције кликера. На i-том кораку, преместићете све кликере са позиције moveFrom[i] на позицију moveTo[i]. Након што завршите све кораке, вратите сортирану листу заузетих позиција.
Напомене:

Позицију називамо заузетом ако се у њој налази бар један кликер.
У једној позицији може бити више кликера.

Пример 1:

Улаз: nums = [1,6,7,8], moveFrom = [1,7,2], moveTo = [2,9,5]
Излаз: [5,6,8,9]
Објашњење: На почетку, кликери су на позицијама 1,6,7,8.
На i = 0. кораку, премештамо кликере са позиције 1 на позицију 2. Позиције 2,6,7,8 су заузете.
На i = 1. кораку, премештамо кликере са позиције 7 на позицију 9. Позиције 2,6,8,9 су заузете.
На i = 2. кораку, премештамо кликере са позиције 2 на позицију 5. Позиције 5,6,8,9 су заузете.
На крају, финалне позиције са бар једним кликером су [5,6,8,9].

Пример 2:

Улаз: nums = [1,1,3,3], moveFrom = [1,3], moveTo = [2,2]
Излаз: [2]
Објашњење: На почетку, кликери су на позицијама [1,1,3,3].
На i = 0. кораку, све кликере на позицији 1 премештамо на позицију 2. Кликери се налазе на позицијама [2,2,3,3].
На i = 1. кораку, све кликере на позицији 3 премештамо на позицију 2. Кликери се налазе на позицијама [2,2,2,2].
Пошто је 2 једина заузета позиција, враћамо [2].

Ограничења:

1 <= nums.length <= 10^5
1 <= moveFrom.length <= 10^5
moveFrom.length == moveTo.length
1 <= nums[i], moveFrom[i], moveTo[i] <= 10^9
Тест случајеви су генерисани тако да постоји барем један кликер у moveFrom[i] у тренутку када желимо да применимо i-ти потез.

Дат је нумерисани низ nums са почетним позицијама кликера. Такође су дати низови moveFrom и moveTo једнаке дужине. Током moveFrom.length корака, мењаћете позиције кликера. На i-том кораку, преместићете све кликере са позиције moveFrom[i] на позицију moveTo[i]. Након што завршите све кораке, вратите сортирану листу заузетих позиција.
Напомене:

Позицију називамо заузетом ако се у њој налази бар један кликер.
У једној позицији може бити више кликера.

Пример 1:

Улаз: nums = [1,6,7,8], moveFrom = [1,7,2], moveTo = [2,9,5]
Излаз: [5,6,8,9]
Објашњење: На почетку, мрамори су на позицијама 1,6,7,8.
На i = 0. кораку, премештамо кликере са позиције 1 на позицију 2. Позиције 2,6,7,8 су заузете.
На i = 1. кораку, премештамо кликере са позиције 7 на позицију 9. Позиције 2,6,8,9 су заузете.
На i = 2. кораку, премештамо кликере са позиције 2 на позицију 5. Позиције 5,6,8,9 су заузете.
На крају, финалне позиције са бар једним кликером су [5,6,8,9].

Пример 2:

Улаз: nums = [1,1,3,3], moveFrom = [1,3], moveTo = [2,2]
Излаз: [2]
Објашњење: На почетку, мрамори су на позицијама [1,1,3,3].
На i = 0. кораку, премештамо све кликере са позиције 1 на позицију 2. мрамори се налазе на позицијама [2,2,3,3].
На i = 1. кораку, премештамо све кликере са позиције 3 на позицију 2. мрамори се налазе на позицијама [2,2,2,2].
Пошто је 2 једина заузета позиција, враћамо [2].

Ограничења:

1 <= nums.length <= 10^5
1 <= moveFrom.length <= 10^5
moveFrom.length == moveTo.length
1 <= nums[i], moveFrom[i], moveTo[i] <= 10^9
Тест случајеви су генерисани тако да постоји бар један кликер у moveFrom[i] у тренутку када желимо да применимо i-ти потез.


Дати су вам два цела броја num1 и num2.
У једној операцији можете изабрати цело число i у опсегу [0, 60] и одузети 2^i + num2 од num1.
Вратите цео број који представља минималан број операција потребних да се num1 постигне 0.
Ако је немогуће учинити да num1 буде једнако 0, вратите -1.

Пример 1:

Улаз: num1 = 3, num2 = -2
Излаз: 3
Објашњење: Можемо учинити 3 једнаким 0 са следећим операцијама:
- Бирамо i = 2 и одузимамо 2^2 + (-2) од 3, 3 - (4 + (-2)) = 1.
- Бирамо i = 2 и одузимамо 2^2 + (-2) од 1, 1 - (4 + (-2)) = -1.
- Бирамо i = 0 и одузимамо 2^0 + (-2) од -1, (-1) - (1 + (-2)) = 0.
Може се доказати да су 3 минималан број операција које треба да изведемо.

Пример 2:

Улаз: num1 = 5, num2 = 7
Излаз: -1
Објашњење: Може се доказати да је немогуће учинити 5 једнаким 0 са датом операцијом.

Ограничења:

1 <= num1 <= 10^9
-10^9 <= num2 <= 10^9

Дата су два цела броја, num1 и num2.
У једној операцији можете изабрати цео број i у опсегу [0, 60] и одузети 2^i + num2 од num1.
Вратите цео број који означава минималан број операција потребних да num1 постане једнак 0.
Ако није могуће да num1 постане једнак 0, вратите -1.

Пример 1:

Улаз: num1 = 3, num2 = -2
Излаз: 3
Објашњење: Можемо учинити 3 једнаким 0 са следећим операцијама:
- Бирамо i = 2 и одузимамо 2^2 + (-2) од 3, 3 - (4 + (-2)) = 1.
- Бирамо i = 2 и одузимамо 2^2 + (-2) од 1, 1 - (4 + (-2)) = -1.
- Бирамо i = 0 и одузимамо 2^0 + (-2) од -1, (-1) - (1 + (-2)) = 0.
Може се доказати да су 3 минималан број операција које треба да изведемо.

Пример 2:

Улаз: num1 = 5, num2 = 7
Излаз: -1
Објашњење: Може се доказати да је немогуће учинити 5 једнаким 0 са датом операцијом.

Ограничења:

1 <= num1 <= 10^9
-10^9 <= num2 <= 10^9

Дате су вам два цела броја num1 и num2.
У једној операцији, можете изабрати цео број i у опсегу [0, 60] и одузети 2^i + num2 од num1.
Вратите цео број који означава минималан број операција потребних да num1 буде једнако 0.
Ако је немогуће да num1 буде једнако 0, вратите -1.

Пример 1:

Улаз: num1 = 3, num2 = -2
Излаз: 3
Објашњење: Можемо учинити 3 једнаким 0 помоћу следећих операција:
- Бирамо и = 2 и одузимамо 2^2 + (-2) од 3, 3 - (4 + (-2)) = 1.
- Бирамо и = 2 и одузимамо 2^2 + (-2) од 1, 1 - (4 + (-2)) = -1.
- Бирамо и = 0 и одузимамо 2^0 + (-2) од -1, (-1) - (1 + (-2)) = 0.
Може се доказати да је 3 минимални број операција које треба да извршимо.

Пример 2:

Улаз: num1 = 5, num2 = 7
Излаз: -1
Објашњење: Може се доказати да је немогуће учинити 5 једнаким 0 датом операцијом.

Ограничења:

1 <= num1 <= 10^9
-10^9 <= num2 <= 10^9


Дају вам се два 0-индексирана низа целих бројева nums1 и nums2, сваки дужине n, и 1-индексирани упити 2D низа где су queries[i] = [x_i, y_i].
За i^th упит, пронађите максималну вредност nums1[j] + nums2[j] међу свим индексима j (0 <= j < n), где је нумс1[ј] >= x_i и nums2[j] >=y_i, или -1 ако не постоји ј који задовољава ограничења.
Врати одговор низа где је answer[i] одговор на i^th упит.

Пример 1:

Улаз: nums1 = [4,3,1,2], nums2 = [2,4,9,5], queries = [[4,1],[1,3],[2,5]]
Излаз: [6,10,7]
Објашњење:
За 1. упит x_i = 4 и y_i = 1, можемо изабрати индекс j = 0 пошто је nums1[j] >= 4 и nums2[j] >= 1. Сума nums1[j] + nums2[j] је 6, и можемо показати да је 6 највише што можемо добити.

За 2. упит x_i = 1 и y_i = 3, можемо изабрати индекс j = 2 пошто је nums1[j] >= 1 и nums2[j] >= 3. Сума nums1[j] + nums2[j] је 10, и можемо показати да је 10 највише што можемо добити.

За 3. упит x_i = 2 и y_i = 5, можемо изабрати индекс j = 3 пошто је nums1[j] >= 2 и nums2[j] >= 5. Сума nums1[j] + nums2[j] је 7, и можемо показати да је 7 највише што можемо добити.

Стога се враћамо [6,10,7].

Пример 2:

Улаз: nums1 = [3,2,5], nums2 = [2,3,4], queries = [[4,4],[3,2],[1,1]]
Излаз: [9,9,9]
Објашњење: За овај пример, можемо користити индекс ј = 2 за све упите пошто он задовољава ограничења за сваки упит.

Пример 3:

Улаз: nums1 = [2,1], nums2 = [2,3], queries = [[3,3]]
Излаз: [-1]
Објашњење: У овом примеру постоји један упит са x_i = 3 и y_i = 3. За сваки индекс, ј, или nums1[j] < x_i или nums2[j] < y_i. Дакле, нема решења.

Ограничења:

nums1.length == nums2.length
n == nums1.length
1 <= n <= 10^5
1 <= nums1[i], nums2[i] <= 10^9
1 <= queries.length <= 10^5
queries[i].length == 2
x_i == queries[i][1]
y_i == queries[i][2]
1 <= x_i, y_i <= 10^9

Дате су вам две целобројне низове nums1 и nums2, сваки дужине n, индексирана од 0, и и дводимензионални низ queries, индексиран од 1, где је queries[i] = [x_i, y_i].
За i-ти упит, пронађите максималну вредност nums1[j] + nums2[j] за све индексе j (0 <= j < n), где је nums1[j] >= x_i и nums2[j] >= y_i, или -1 ако не постоји j који задовољава услове.
Вратите низ answer где је answer[i] одговор на i-ти упит.

Пример 1:

Унос: nums1 = [4,3,1,2], nums2 = [2,4,9,5], queries = [[4,1],[1,3],[2,5]]
Излаз: [6,10,7]
Објашњење:
За 1. упит x_i = 4 и y_i = 1, можемо изабрати индекс j = 0 пошто је nums1[j] >= 4 и nums2[j] >= 1. Сума nums1[j] + nums2[j] је 6, и можемо показати да је 6 највише што можемо добити.

За 2. упит x_i = 1 и y_i = 3, можемо изабрати индекс j = 2 пошто је nums1[j] >= 1 и nums2[j] >= 3. Сума nums1[j] + nums2[j] је 10, и можемо показати да је 10 највише што можемо добити.

За 3. упит x_i = 2 и y_i = 5, можемо изабрати индекс j = 3 пошто је nums1[j] >= 2 и nums2[j] >= 5. Сума nums1[j] + nums2[j] је 7, и можемо показати да је 7 највише што можемо добити.

Дакле, враћамо [6,10,7].

Пример 2:

Унос: nums1 = [3,2,5], nums2 = [2,3,4], queries = [[4,4],[3,2],[1,1]]
Излаз: [9,9,9]
Објашњење: За овај примерак, можемо користити индекс j = 2 за све упите пошто задовољава услове за сваки упит.

Пример 3:

Унос: nums1 = [2,1], nums2 = [2,3], queries = [[3,3]]
Излаз: [-1]
Објашњење: Постоји један упит у овом примераку са x_i = 3 и y_i = 3. За сваки индекс j, или је nums1[j] < x_i или nums2[j] < y_i. Стога, нема решења.

Ограничења:

nums1.length == nums2.length
n == nums1.length
1 <= n <= 10^5
1 <= nums1[i], nums2[i] <= 10^9
1 <= queries.length <= 10^5
queries[i].length == 2
x_i == queries[i][1]
y_i == queries[i][2]
1 <= x_i, y_i <= 10^9

Дате су вам две целобројне низове nums1 и nums2, сваки дужине n, и 2D низ који почиње са индексом 1, queries, где је queries[i] = [x_i, y_i].
За i-ти упит, пронађите максималну вредност nums1[j] + nums2[j] за све индексе j (0 <= j < n), где је nums1[j] >= x_i и nums2[j] >= y_i, или -1 ако не постоји j који задовољава услове.
Вратите низ answer где је answer[i] одговор на i-ти упит.

Пример 1:

Унос: nums1 = [4,3,1,2], nums2 = [2,4,9,5], queries = [[4,1],[1,3],[2,5]]
Излаз: [6,10,7]
Објашњење:
За 1. упит x_i = 4 и y_i = 1, можемо изабрати индекс j = 0 пошто је nums1[j] >= 4 и nums2[j] >= 1. Сума nums1[j] + nums2[j] је 6, и можемо показати да је 6 највише што можемо добити.

За 2. упит x_i = 1 и y_i = 3, можемо изабрати индекс j = 2 пошто је nums1[j] >= 1 и nums2[j] >= 3. Сума nums1[j] + nums2[j] је 10, и можемо показати да је 10 највише што можемо добити.

За 3. упит x_i = 2 и y_i = 5, можемо изабрати индекс j = 3 пошто је nums1[j] >= 2 и nums2[j] >= 5. Сума nums1[j] + nums2[j] је 7, и можемо показати да је 7 највише што можемо добити.

Дакле, враћамо [6,10,7].

Пример 2:

Унос: nums1 = [3,2,5], nums2 = [2,3,4], queries = [[4,4],[3,2],[1,1]]
Излаз: [9,9,9]
Објашњење: За овај примерак, можемо користити индекс j = 2 за све упите пошто задовољава услове за сваки упит.

Пример 3:

Унос: nums1 = [2,1], nums2 = [2,3], queries = [[3,3]]
Излаз: [-1]
Објашњење: Постоји један упит у овом примераку са x_i = 3 и y_i = 3. За сваки индекс j, или је nums1[j] < x_i или nums2[j] < y_i. Стога, нема решења.

Ограничења:

nums1.length == nums2.length
n == nums1.length
1 <= n <= 10^5
1 <= nums1[i], nums2[i] <= 10^9
1 <= queries.length <= 10^5
queries[i].length == 2
x_i == queries[i][1]
y_i == queries[i][2]
1 <= x_i, y_i <= 10^9


Дат је целобројни низ nums индексиран од 1 чија је дужина n.
Елемент nums[i] из nums назива се посебан ако i дели n, тј. n % i == 0.
Врати се збир квадрата свих посебних елемената низа nums.

Пример 1:

Улаз: nums = [1,2,3,4]
Излаз: 21
Објашњење: Постоје тачно 3 посебна елемента у nums: nums[1] јер 1 дели 4, nums[2] јер 2 дели 4, и nums[4] јер 4 дели 4.
Због тога, збир квадрата свих посебних елемената из nums је nums[1] * nums[1] + nums[2] * nums[2] + nums[4] * nums[4] = 1 * 1 + 2 * 2 + 4 * 4 = 21.

Пример 2:

Улаз: nums = [2,7,1,19,18,3]
Излаз: 63
Објашњење: Постоје тачно 4 посебна елемента у nums: nums[1] јер 1 дели 6, nums[2] јер 2 дели 6, nums[3] јер 3 дели 6, и nums[6] јер 6 дели 6.
Због тога, збир квадрата свих посебних елемената из nums је nums[1] * nums[1] + nums[2] * nums[2] + nums[3] * nums[3] + nums[6] * nums[6] = 2 * 2 + 7 * 7 + 1 * 1 + 3 * 3 = 63.

Ограничења:

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

Дат је целобројни низ nums индексиран од 1 чија је дужина n.
Елемент nums[i] из nums назива се посебан ако i дели n, тј. n % i == 0.
Врати збир квадрата свих посебних елемената niza nums.

Пример 1:

Улаз: nums = [1,2,3,4]
Излаз: 21
Објашњење: Постоје тачно 3 посебна елемента у nums: nums[1] јер 1 дели 4, nums[2] јер 2 дели 4, и nums[4] јер 4 дели 4.
Дакле, збир квадрата свих посебних елемената из nums је nums[1] * nums[1] + nums[2] * nums[2] + nums[4] * nums[4] = 1 * 1 + 2 * 2 + 4 * 4 = 21.

Пример 2:

Улаз: nums = [2,7,1,19,18,3]
Излаз: 63
Објашњење: Постоје тачно 4 посебна елемента у nums: nums[1] јер 1 дели 6, nums[2] јер 2 дели 6, nums[3] јер 3 дели 6, и nums[6] јер 6 дели 6.
Дакле,, збир квадрата свих посебних елемената из nums је nums[1] * nums[1] + nums[2] * nums[2] + nums[3] * nums[3] + nums[6] * nums[6] = 2 * 2 + 7 * 7 + 1 * 1 + 3 * 3 = 63.

Ограничења:

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

Дат вам је низ целих бројева nums индексиран од 1, дужине нn.
Елемент nums[i] назива се специјалним ако i дели n, односно ако је n % i == 0.
Вратите збир квадрата свих специјалних елемената низа nums.

Пример 1:

Улаз: nums = [1,2,3,4]
Излаз: 21
Објашњење: Постоје тачно 3 посебна елемента у nums: nums[1] јер 1 дели 4, nums[2] јер 2 дели 4, и nums[4] јер 4 дели 4.
Због тога, збир квадрата свих посебних елемената из nums је nums[1] * nums[1] + nums[2] * nums[2] + nums[4] * nums[4] = 1 * 1 + 2 * 2 + 4 * 4 = 21.

Пример 2:

Улаз: nums = [2,7,1,19,18,3]
Излаз: 63
Објашњење: Постоје тачно 4 посебна елемента у nums: nums[1] јер 1 дели 6, nums[2] јер 2 дели 6, nums[3] јер 3 дели 6, и nums[6] јер 6 дели 6.
Због тога, збир квадрата свих посебних елемената из nums је nums[1] * nums[1] + nums[2] * nums[2] + nums[3] * nums[3] + nums[6] * nums[6] = 2 * 2 + 7 * 7 + 1 * 1 + 3 * 3 = 63.

Ограничења:

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


Дат је низ позитивних целих бројева nums.
Поделите nums на два низа, nums1 и nums2, тако да:

- Сваки елемент низа nums припада или низу nums1 или низу nums2.
- Оба низа су непразна.
- Вредност партиције је минимизована.

Вредност партиције је |max(nums1) - min(nums2)|.
Овде, max(nums1) означава највећи елемент у низу nums1, а min(nums2) означава најмањи елемент у низу nums2.
Вратите цео број који представља вредност такве партиције.

Пример 1:

Улаз: nums = [1,3,2,4]
Излаз: 1
Објашњење: Можемо поделити низ nums на nums1 = [1,2] и nums2 = [3,4].
- Максимални елемент низа nums1 је једнак 2.
- Минимални елемент низа nums2 је једнак 3.
Вредност партиције је |2 - 3| = 1.
Може се доказати да је 1 минимална вредност од свих партиција.

Пример 2:

Улаз: nums = [100,1,10]
Излаз: 9
Објашњење: Можемо поделити низ nums на nums1 = [10] и nums2 = [100,1].
- Максимални елемент низа nums1 је једнак 10.
- Минимални елемент низа nums2 је једнак 1.
Вредност партиције је |10 - 1| = 9.
Може се доказати да је 9 минимална вредност од свих партиција.

Ограничења:

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

Dati су вам позитивни цели бројеви у низу nums. Поделите nums на два низа, nums1 и nums2, тако да:

Сваки елемент низа nums припада или низу nums1 или низу nums2.
Оба низа су непразна.
Вредност партиције је минимизована.

Вредност партиције је |max(nums1) - min(nums2)|.
Овде, max(nums1) означава максимални елемент низа nums1, а min(nums2) означава минимални елемент низа nums2.
Вратите цео број који означава вредност такве партиције.

Пример 1:

Улаз: nums = [1,3,2,4]
Излаз: 1
Објашњење: Можемо поделити низ nums на nums1 = [1,2] и nums2 = [3,4].
- Максимални елемент низа nums1 је једнак 2.
- Минимални елемент низа nums2 је једнак 3.
Вредност партиције је |2 - 3| = 1.
Може се доказати да је 1 минимална вредност од свих партиција.

Пример 2:

Улаз: nums = [100,1,10]
Излаз: 9
Објашњење: Можемо поделити низ nums на nums1 = [10] и nums2 = [100,1].
- Максимални елемент низа nums1 је једнак 10.
- Минимални елемент низа nums2 је једнак 1.
Вредност партиције је |10 - 1| = 9.
Може се доказати да је 9 минимална вредност од свих партиција.

Ограничења:

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


Дат вам је низ речи words са нула-базираним индексом који се састоји од различитих стрингова.
Стринг words[i] може бити упарен са стрингом words[j] ако:

Стринг words[i] је једнак инверзном стрингу од words[j].
0 <= i < j < words.length.

Вратите максималан број парова који се могу формирати из низа words.
Запазите да сваки стринг може припадати највише једном пару.

Пример 1:

Улаз: words = ["cd","ac","dc","ca","zz"]
Излаз: 2
Објашњење: У овом примеру можемо формирати 2 пара стрингова на следећи начин:
- Упаримо 0^ти стринг са 2^гим стрингом, јер је инверзни стринг од word[0] "dc" и једнак је words[2].
- Упаримо 1^ви стринг са 3^ћим стрингом, јер је инверзни стринг од word[1] "ca" и једнак је words[3].
Може се доказати да је 2 максималан број парова који се могу формирати.
Пример 2:

Улаз: words = ["ab","ba","cc"]
Излаз: 1
Објашњење: У овом примеру можемо формирати 1 пар стрингова на следећи начин:
- Упаримо 0^ти стринг са 1^вим стрингом, јер је инверзни стринг од words[1] "ab" и једнак је words[0].
Може се доказати да је 1 максималан број парова који се могу формирати.

Пример 3:

Улаз: words = ["aa","ab"]
Излаз: 0
Објашњење: У овом примеру не можемо формирати ниједан пар стрингова.

Ограничења:

1 <= words.length <= 50
words[i].length == 2
words се састоји од различитих стрингова.
words[i] садржи само мала слова енглеске абецеде.

Дат вам је низ words индексиран од 0, који се састоји од различитих стрингова.
Стринг words[i] може бити упарен са стрингом words[j] ако:

Стринг words[i] је једнак инверзном стрингу од words[j].
0 <= i < j < words.length.

Вратите максималан број парова који се могу формирати из низа words.
Имајте у виду да сваки стринг може припадати највише једном пару.

Пример 1:

Улаз: words = ["cd","ac","dc","ca","zz"]
Излаз: 2
Објашњење: У овом примеру можемо формирати 2 пара стрингова на следећи начин:
- Упаримо 0^ти стринг са 2^гим стрингом, јер је инверзни стринг од word[0] "dc" и једнак је words[2].
- Упаримо 1^ви стринг са 3^ћим стрингом, јер је инверзни стринг од word[1] "ca" и једнак је words[3].
Може се доказати да је 2 максималан број парова који се могу формирати.
Пример 2:

Улаз: words = ["ab","ba","cc"]
Излаз: 1
Објашњење: У овом примеру можемо формирати 1 пар стрингова на следећи начин:
- Упаримо 0^ти стринг са 1^вим стрингом, јер је инверзни стринг од words[1] "ab" и једнак је words[0].
Може се доказати да је 1 максималан број парова који се могу формирати.

Пример 3:

Улаз: words = ["aa","ab"]
Излаз: 0
Објашњење: У овом примеру не можемо формирати ниједан пар стрингова.

Ограничења:

1 <= words.length <= 50
words[i].length == 2
words се састоји од различитих стрингова.
words[i] садржи само мала слова енглеске азбуке.

Дат вам је низ речи индексираних 0 које се састоје од различитих стрингова.
Стринг words[i] може бити упарен са стрингом words[j] ако:

Стринг words[i] је једнак инверзном стрингу од words[j].
0 <= i < j < words.length.

Врати максималан број парова који се могу формирати од речи низа.
Имајте на уму да сваки низ може припадати највише једном пару.

Пример 1:

Улаз: words = ["cd","ac","dc","ca","zz"]
Излаз: 2
Објашњење: У овом примеру можемо формирати 2 пара низова на следећи начин:
-Упаримо 0^ти стринг са 2^гим стрингом, јер је инверзни стринг од word[0] "dc" и једнак је words[2].
-Упаримо 1^ви стринг са 3^ћим стрингом, јер је инверзни стринг од word[1] "ca" и једнак је words[3].
Може се доказати да је 2 максималан број парова који се могу формирати.
Пример 2:

Улаз: words = ["ab","ba","cc"]
Излаз: 1
Објашњење: У овом примеру можемо формирати 1 пар низова на следећи начин:
- Упаримо 0^ти стринг са 1^вим стрингом, јер је инверзни стринг од words[1] "ab" и једнак је words[0].
Може се доказати да је 1 максималан број парова који се могу формирати.

Пример 3:

Улаз: words = ["aa","ab"]
Излаз: 0
Објашњење: У овом примеру нисмо у могућности да формирамо ниједан пар низова.

Ограничења:

1 <= words.length <= 50
words[i].length == 2
words се састоји од различитих стрингова.
words[i] садржи само мала слова енглеске абецеде.


Da biste rešili ovaj zadatak, trebate implementirati algoritam za računanje broja specijalnih permutacija. Specijalna permutacija niza brojeva je ona u kojoj za svaki indeks 0 <= i < n - 1 važi jedno od dva pravila:

 nums[i] % nums[i+1] == 0, ili
nums[i+1] % nums[i] == 0.

Na kraju treba vratiti ukupan broj specijalnih permutacija, uzimajući u obzir da odgovor može biti veliki, pa ga treba vratiti modulo 10^9 + 7.

Primer 1:

Ulaz: nums = [2,3,6]
Izlaz: 2
Objašnjenje: [3,6,2] i [2,6,3] su dve specijalne permutacije niza nums.

Primer 2:

Ulaz: nums = [1,4,3]
Izlaz: 2
Objašnjenje: [3,1,4] i [4,1,3] su dve specijalne permutacije niza nums.

Ograničenja:

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

Дат вам је низ целих бројева са индексом 0, nums, који садржи n различитих позитивних целих бројева. Престајање nums се назива посебним ако:

За све индексе 0 <= i < n - 1, важи или nums[i] % nums[i+1] == 0 или nums[i+1] % nums[i] == 0.

Вратите укупан број посебних пермутација. Пошто одговор може бити велики, вратите га модуло 10^9 + 7.

Пример 1:

Улаз: nums = [2,3,6]
Излаз: 2
Објашњење: [3,6,2] и [2,6,3] су два посебна престајања nums.

Пример 2:

Улаз: nums = [1,4,3]
Излаз: 2
Објашњење: [3,1,4] и [4,1,3] су два посебна престајања nums.

Ограничења:

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

Дат вам је низ целих бројева са индексом 0, nums, који садржи n различитих позитивних целих бројева. Престајање nums се назива специјалним ако:

За све индексе 0 <= i < n - 1, важи или nums[i] % nums[i+1] == 0 или nums[i+1] % nums[i] == 0.

Врати укупан број специјалних пермутација. Пошто би одговор могао бити велики, вратите га по модулу 10^9 + 7.

Пример 1:

Улаз: nums = [2,3,6]
Излаз: 2
Објашњење: [3,6,2] и [2,6,3] су две специјалне пермутације nums.

Пример 2:

Улаз: nums = [1,4,3]
Излаз: 2
Објашњење: [3,1,4] и [4,1,3] су две специјалне пермутације nums.

Ограничења:

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


Дисбалансни број 0-индексираног низа целих бројева arr дужине n је дефинисан као број индекса у sarr = sorted(arr) таквих да:

0 <= i < n - 1, и
sarr[i+1] - sarr[i] > 1

Овде, sorted(arr) је функција која враћа сортирану верзију niza arr.
Дат је 0-индексирани низ целих бројева nums, вратите збир дисбалансних бројева свих његових поднизова.
Подниз је континуирана некативна секвенца елемената унутар низа.

Пример 1:

Улаз: nums = [2,3,1,4]
Излаз: 3
Објашњење: Постоји 3 подниза са ненула дисбалансним бројевима:
- Подниз [3, 1] са дисбалансним бројем 1.
- Подниз [3, 1, 4] са дисбалансним бројем 1.
- Подниз [1, 4] са дисбалансним бројем 1.
Дисбалансни број свих осталих поднизова је 0. Према томе, збир дисбалансних бројева свих поднизова nа nums је 3.

Пример 2:

Улаз: nums = [1,3,3,3,5]
Излаз: 8
Објашњење: Постоји 7 поднизова са ненула дисбалансним бројевима:
- Подниз [1, 3] са дисбалансним бројем 1.
- Подниз [1, 3, 3] са дисбалансним бројем 1.
- Подниз [1, 3, 3, 3] са дисбалансним бројем 1.
- Подниз [1, 3, 3, 3, 5] са дисбалансним бројем 2.
- Подниз [3, 3, 3, 5] са дисбалансним бројем 1.
- Подниз [3, 3, 5] са дисбалансним бројем 1.
- Подниз [3, 5] са дисбалансним бројем 1.
Дисбалансни број свих осталих поднизова је 0. Према томе, збир дисбалансних бројева свих поднизова nа nums је 8.

Ограничења:

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

Број неравнотеже за 0-индексирани целобројни низ arr дужине n дефинисан је као број индекса у sarr = сортиран(arr) такав да:

0 <= i < n - 1, и
sarr[i+1] - sarr[i] > 1

Овде, sorted(arr) је функција која враћа сортирану верзију niza arr.
Дат је 0-индексирани низ целих бројева nums, вратите збир дисбалансних бројева свих његових поднизова.
Подниз је континуирана некативна секвенца елемената унутар низа.

Пример 1:

Улаз: nums = [2,3,1,4]
Излаз: 3
Објашњење: Постоји 3 подниза са ненула дисбалансним бројевима:
- Подниз [3, 1] са дисбалансним бројем 1.
- Подниз [3, 1, 4] са дисбалансним бројем 1.
- Подниз [1, 4] са дисбалансним бројем 1.
Дисбалансни број свих осталих поднизова је 0. Према томе, збир дисбалансних бројева свих поднизова nа nums је 3.

Пример 2:

Унос: nums = [1,3,3,3,5]
Излаз: 8
Објашњење: Постоји 7 поднизова са ненула дисбалансним бројевима:
- Подниз [1, 3] са дисбалансним бројем 1.
- Подниз [1, 3, 3] са дисбалансним бројем 1.
- Подниз [1, 3, 3, 3] са дисбалансним бројем 1.
- Подниз [1, 3, 3, 3, 5] са дисбалансним бројем 2.
- Подниз [3, 3, 3, 5] са дисбалансним бројем 1.
- Подниз [3, 3, 5] са дисбалансним бројем 1.
- Подниз [3, 5] са дисбалансним бројем 1.
Дисбалансни број свих осталих поднизова је 0. Према томе, збир дисбалансних бројева свих поднизова nа nums је 8.

Ограничења:

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

Број неравнотеже 0-индексираног низа целих бројева арр дужине н је дефинисан као број индекса у сарр = сортед(арр) тако да:

0 <= i < n - 1, и
sarr[i+1] - sarr[i] > 1

Овде је сортед(арр) функција која враћа сортирану верзију арр.
Дати низ бројева индексираних целих бројева нум, врати збир бројева неравнотеже свих његових поднизова.
Подниз је непрекидан непразан низ елемената унутар низа.

Пример 1:

Улаз: nums = [2,3,1,4]
Излаз: 3
Објашњење: Постоје 3 поднизе са бројевима неравнотеже који нису нула:
- Подниз [3, 1] са бројем неравнотеже 1.
- Подниз [3, 1, 4] са бројем неравнотеже 1.
- Подниз [1, 4] са бројем неравнотеже 1.
Број неравнотеже свих осталих поднизова је 0. Дакле, збир бројева неравнотеже свих поднизова бројева је 3.

Пример 2:

Улаз: nums = [1,3,3,3,5]
Излаз: 8
Објашњење: Постоји 7 поднизова са бројевима неравнотеже који нису нула:
- Подниз [1, 3] са бројем неравнотеже 1.
- Подниз [1, 3, 3] са бројем неравнотеже 1.
- Подниз [1, 3, 3, 3] са бројем неравнотеже 1.
- Подниз [1, 3, 3, 3, 5] са бројем неравнотеже 2.
- Подниз [3, 3, 3, 5] са бројем неравнотеже 1.
- Подниз [3, 3, 5] са бројем неравнотеже 1.
- Подниз [3, 5] са бројем неравнотеже 1.
Број неравнотеже свих осталих поднизова је 0. Дакле, збир бројева неравнотеже свих поднизова бројева је 8.

Ограничења:

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


Дати су вам три цела броја x, y и z.
Имате x низова који су једнаки "AA", y низова који су једнаки "BB", и z низова који су једнаки "AB". Желите да изаберете неке (приближно све или ниједан) од ових низова и спојите их у неком редоследу да формирате нови низ. Овај нови низ не сме садржати "AAA" или "BBB" као подниз. Вратите максималну могућу дужину новог низа.
Вратите максималну могућу дужину новог низа.
Подниз је континуирана не-празна секвенца карактера унутар низа.

Пример 1:

Улаз: x = 2, y = 5, z = 1
Излаз: 12
Објашњење: Можемо спојити стрингове "BB", "AA", "BB", "AA", "BB", и "AB" тим редом. Тада је наш нови стринг "BBAABBAABBAB".
Тај стринг има дужину 12, и можемо показати да је немогуће конструисати стринг веће дужине.

Пример 2:

Улаз: x = 3, y = 2, z = 2
Излаз: 14
Објашњење: Можемо спојити стрингове "AB", "AB", "AA", "BB", "AA", "BB", и "AA" тим редом. Тада је наш нови стринг "ABABAABBAABBAA".
Тај стринг има дужину 14, и можемо показати да је немогуће конструисати стринг веће дужине.

Ограничења:

1 <= x, y, z <= 50

Дате су три цела броја x, y и z.
Имате x стрингова једнаких "AA", y стрингова једнаких "BB" и z стрингова једнаких "AB". Желите да одаберете неке (могуће је све или ниједан) од ових стрингова и спојите их редом да формирате нови стринг. Овај нови стринг не сме садржати "AAA" или "BBB" као подстринг.
Вратите максималну могућу дужину новог стринга.
Подстринг је континуирани непразни низ карактера унутар стринга.

Пример 1:

Улаз: x = 2, y = 5, z = 1
Излаз: 12
Објашњење: Можемо спојити стрингове "BB", "AA", "BB", "AA", "BB", и "AB" тим редом. Тада је наш нови стринг "BBAABBAABBAB".
Тај стринг има дужину 12, и можемо показати да је немогуће конструисати стринг веће дужине.

Пример 2:

Улаз: x = 3, y = 2, z = 2
Излаз: 14
Објашњење: Можемо спојити стрингове "AB", "AB", "AA", "BB", "AA", "BB", и "AA" тим редом. Тада је наш нови стринг "ABABAABBAABBAA".
Тај стринг има дужину 14, и можемо показати да је немогуће конструисати стринг веће дужине.

Ограничења:

1 <= x, y, z <= 50

Дате су три цела броја x, y и z.
Имате x стрингова једнаких "AA", y стрингова једнаких "BB" и z стрингова једнаких "AB". Желите да одаберете неке (могуће је све или ниједан) од ових стрингова и спојите их редом да формирате нови стринг. Овај нови стринг не сме садржати "AAA" или "BBB" као подстринг.
Вратите максималну могућу дужину новог низа.
Подниз је континуиран и непразан низ карактера унутар низа.

Пример 1:

Улаз: x = 2, y = 5, z = 1
Излаз: 12
Објашњење: Можемо спојити стрингове "BB", "AA", "BB", "AA", "BB", и "AB" у том редоследу. Тада је наш нови стринг "BBAABBAABBAB".
Тај стринг има дужину 12, и можемо показати да је немогуће конструисати стринг веће дужине.

Пример 2:

Улаз: x = 3, y = 2, z = 2
Излаз: 14
Објашњење: Можемо спојити стрингове "AB", "AB", "AA", "BB", "AA", "BB", и "AA" у том редоследу. Тада је наш нови стринг "ABABAABBAABBAA".
Тај стринг има дужину 14, и можемо показати да је немогуће конструисати стринг веће дужине.

Ограничења:

1 <= x, y, z <= 50


Дат вам је нумерисан низ речи `words` који садржи n стрингова.
Дефинишемо операцију спајања join(x, y) између два стринга x и y као њихово конкатенисање у xy. Међутим, ако је последњи карактер x једнак првом карактеру y, један од њих се брише.
На пример join("ab", "ba") = "aba" и join("ab", "cde") = "abcde".
Треба да извршите n - 1 операцију спајања. Нека је str_0 = words[0]. Почевши од i = 1 до i = n - 1, за i-ту операцију, можете урадити једно од следећег:

Направите str_i = join(str_i - 1, words[i])
Направите str_i = join(words[i], str_i - 1)

Ваш задатак је да минимизирате дужину str_n - 1.
Вратите цео број који означава минималну могућу дужину str_n - 1.

Пример 1:

Улаз: words = ["aa","ab","bc"]
Излаз: 4
Објашњење: У овом примеру, можемо извршити спајање у следећем редоследу да минимизујемо дужину str_2:
str_0 = "aa"
str_1 = join(str_0, "ab") = "aab"
str_2 = join(str_1, "bc") = "aabc"
Може се показати да је минимална могућа дужина str_2 4.
Пример 2:

Улаз: words = ["ab","b"]
Излаз: 2
Објашњење: У овом примеру, str_0 = "ab", постоје два начина да дођемо до str_1:
join(str_0, "b") = "ab" или join("b", str_0) = "bab".
Први стринг, "ab", има минималну дужину. Дакле, одговор је 2.

Пример 3:

Улаз: words = ["aaa","c","aba"]
Излаз: 6
Објашњење: У овом примеру, можемо извршити спајање у следећем редоследу да минимизујемо дужину str_2:
str_0 = "aaa"
str_1 = join(str_0, "c") = "aaac"
str_2 = join("aba", str_1) = "abaaac"
Може се показати да је минимална могућа дужина str_2 6.

Ограничења:

1 <= words.length <= 1000
1 <= words[i].length <= 50
Сваки карактер у words[i] је енглеско мало слово

Дат вам је нумерисан низ речи `words` који садржи n ниски.
Дефинишемо операцију спајања join(x, y) између две ниске x и y као њихово конкатенисање у xy. Међутим, ако је последњи карактер x једнак првом карактеру y, један од њих се брише.
На пример join("ab", "ba") = "aba" и join("ab", "cde") = "abcde".
Треба да извршите n - 1 операцију спајања. Нека је str_0 = words[0]. Почевши од i = 1 до i = n - 1, за i-ту операцију, можете урадити једно од следећег:

Направите str_i = join(str_i - 1, words[i])
Направите str_i = join(words[i], str_i - 1)

Ваш задатак је да минимизирате дужину str_n - 1.
Вратите цео број који означава минималну могућу дужину str_n - 1.

Пример 1:

Улаз: words = ["aa","ab","bc"]
Излаз: 4
Објашњење: У овом примеру, можемо извршити спајање у следећем редоследу да минимизујемо дужину str_2:
str_0 = "aa"
str_1 = join(str_0, "ab") = "aab"
str_2 = join(str_1, "bc") = "aabc"
Може се показати да је минимална могућа дужина str_2 4.
Пример 2:

Улаз: words = ["ab","b"]
Излаз: 2
Објашњење: У овом примеру, str_0 = "ab", постоје два начина да дођемо до str_1:
join(str_0, "b") = "ab" или join("b", str_0) = "bab".
Прва ниска, "ab", има минималну дужину. Дакле, одговор је 2.

Пример 3:

Улаз: words = ["aaa","c","aba"]
Излаз: 6
Објашњење: У овом примеру, можемо извршити спајање у следећем редоследу да минимизујемо дужину str_2:
str_0 = "aaa"
str_1 = join(str_0, "c") = "aaac"
str_2 = join("aba", str_1) = "abaaac"
Може се показати да је минимална могућа дужина str_2 6.

Ограничења:

1 <= words.length <= 1000
1 <= words[i].length <= 50
Сваки карактер у words[i] је енглеско мало слово

Дат вам је низ речи индексираних 0 које садрже н низова.
Хајде да дефинишемо операцију спајања јоин(x, y) између два низа к и и као спајање у ки. Међутим, ако је последњи знак к једнак првом знаку и, један од њих се брише.
На пример, јоин("ab", "ba") = "aba" и јоин("ab", "cde") = "abcde".
Треба да извршите н - 1 операција спајања. Нека стр_0 = речи[0]. Почевши од и = 1 до и = н - 1, за и^-ту операцију, можете да урадите једно од следећег:

Направите str_i = join(str_i - 1, words[i])
Направите str_i = join(words[i], str_i - 1)

Ваш задатак је да минимизирате дужину str_n - 1.
Врати цео број који означава минималну могућу дужину str_n - 1.

Пример 1:

Улаз: words = ["aa","ab","bc"]
Излаз: 4
Објашњење: У овом примеру можемо да изведемо операције спајања следећим редоследом да бисмо минимизирали дужину str_2:
str_0 = "aa"
str_1 = join(str_0, "ab") = "aab"
str_2 = join(str_1, "bc") = "aabc"
Може се показати да је минимална могућа дужина str_2 4.
Пример 2:

Улаз: words = ["ab","b"]
Излаз: 2
Објашњење: У овом примеру, str_0 = "ab", постоје два начина да добијете str_1:
join(str_0, "b") = "ab" или join("b", str_0) = "bab".
Први низ, "ab", има минималну дужину. Дакле, одговор је 2.

Пример 3:

Улаз: words = ["aaa","c","aba"]
Излаз: 6
Објашњење: У овом примеру можемо да изведемо операције спајања следећим редоследом да бисмо минимизирали дужину str_2:
str_0 = "aaa"
str_1 = join(str_0, "c") = "aaac"
str_2 = join("aba", str_1) = "abaaac"
Може се показати да је минимална могућа дужина str_2 6.

Ограничења:

1 <= words.length <= 1000
1 <= words[i].length <= 50
Сваки знак у words[i] је енглеско мало слово


Дат вам је низ nums од n целих бројева и цео број target.
Иницијално сте позиционирани на индексу 0. У једном кораку можете скочити са индекса i на било који индекс j таквим условима:

0 <= i < j < n
-таргет <= нумс[j] - нумс[i] <= таргет

Вратите максималан број скокова које можете направити да бисте дошли до индекса н - 1. Ако не постоји начин да се дође до индекса н - 1, вратите -1.

Пример 1:

Инпут: нумс = [1,3,6,4,1,2], таргет = 2
Оутпут: 3
Објашњење: Да бисте прешли са индекса 0 на индекс н - 1 са максималним бројем скокова, можете извести следећу секвенцу скокова:
- Скок са индекса 0 на индекс 1.
- Скок са индекса 1 на индекс 3.
- Скок са индекса 3 на индекс 5.
Може се доказати да не постоји друга секвенца скокова која води од 0 до н - 1 са више од 3 скока. Дакле, одговор је 3.
Пример 2:

Инпут: нумс = [1,3,6,4,1,2], таргет = 3
Оутпут: 5
Објашњење: Да бисте прешли са индекса 0 на индекс н - 1 са максималним бројем скокова, можете извести следећу секвенцу скокова:
- Скок са индекса 0 на индекс 1.
- Скок са индекса 1 на индекс 2.
- Скок са индекса 2 на индекс 3.
- Скок са индекса 3 на индекс 4.
- Скок са индекса 4 на индекс 5.
Може се доказати да не постоји друга секвенца скокова која води од 0 до н - 1 са више од 5 скокова. Дакле, одговор је 5.
Пример 3:

Инпут: нумс = [1,3,6,4,1,2], таргет = 0
Оутпут: -1
Објашњење: Може се доказати да не постоји секвенца скокова која води од 0 до н - 1. Дакле, одговор је -1.

Ограничења:

2 <= нумс.ленгтх == н <= 1000
-10^9 <= нумс[i] <= 10^9
0 <= таргет <= 2 * 10^9

Дат вам је низ нумс од н целих бројева са нумеровањем од 0 и целобројни таргет. Почетно сте позиционирани на индекс 0. У једном кораку, можете прескочити са индекса и на било који индекс ј тако да важи:

0 <= i < j < n
-таргет <= нумс[j] - нумс[i] <= таргет

Вратите максималан број скокова које можете направити да бисте дошли до индекса н - 1. Ако не постоји начин да се дође до индекса н - 1, вратите -1.

Пример 1:

Инпут: нумс = [1,3,6,4,1,2], таргет = 2
Оутпут: 3
Објашњење: Да бисте прешли са индекса 0 на индекс н - 1 са максималним бројем скокова, можете извести следећу секвенцу скокова:
- Скок са индекса 0 на индекс 1.
- Скок са индекса 1 на индекс 3.
- Скок са индекса 3 на индекс 5.
Може се доказати да не постоји друга секвенца скокова која води од 0 до н - 1 са више од 3 скока. Дакле, одговор је 3.
Пример 2:

Инпут: нумс = [1,3,6,4,1,2], таргет = 3
Оутпут: 5
Објашњење: Да бисте прешли са индекса 0 на индекс н - 1 са максималним бројем скокова, можете извести следећу секвенцу скокова:
- Скок са индекса 0 на индекс 1.
- Скок са индекса 1 на индекс 2.
- Скок са индекса 2 на индекс 3.
- Скок са индекса 3 на индекс 4.
- Скок са индекса 4 на индекс 5.
Може се доказати да не постоји друга секвенца скокова која води од 0 до н - 1 са више од 5 скокова. Дакле, одговор је 5.
Пример 3:

Инпут: нумс = [1,3,6,4,1,2], таргет = 0
Оутпут: -1
Објашњење: Може се доказати да не постоји секвенца скокова која води од 0 до н - 1. Дакле, одговор је -1.

Ограничења:

2 <= нумс.ленгтх == н <= 1000
-10^9 <= нумс[i] <= 10^9
0 <= таргет <= 2 * 10^9

Дат вам је 0-индексиран низ бројева од н целих бројева и целобројни циљ.
У почетку сте позиционирани на индексу 0. У једном кораку можете скочити са индекса и на било који индекс ј тако да:

0 <= i < j < n
-target <= nums[j] - nums[i] <= target

Врати максималан број скокова који можете да направите да бисте достигли индекс n - 1.
Ако не постоји начин да се дође до индекса n - 1, вратите -1.

Пример 1:

Улаз: nums = [1,3,6,4,1,2], target = 2
Излаз: 3
Објашњење: Да бисте прешли са индекса 0 на индекс n - 1 са максималним бројем скокова, можете извршити следећу секвенцу скокова:
- Скок са индекса 0 на индекс 1.
- Скок са индекса 1 на индекс 3.
- Скок са индекса 3 на индекс 5.
Може се доказати да не постоји други низ скокова који иде од 0 до n - 1 са више од 3 скока. Дакле, одговор је 3.
Пример 2:

Улаз: nums = [1,3,6,4,1,2], target = 3
Излаз: 5
Објашњење: Да бисте прешли са индекса 0 на индекс н - 1 са максималним бројем скокова, можете извршити следећу секвенцу скокова:
- Скок са индекса 0 на индекс 1.
- Скок са индекса 1 на индекс 2.
- Скок са индекса 2 на индекс 3.
- Скок са индекса 3 на индекс 4.
- Скок са индекса 4 на индекс 5.
Може се доказати да не постоји други низ скокова који иде од 0 до н - 1 са више од 5 скокова. Дакле, одговор је 5.
Пример 3:

Улаз: nums = [1,3,6,4,1,2], target = 0
Излаз: -1
Објашњење: Може се доказати да не постоји низ скакања који иде од 0 до н - 1. Дакле, одговор је -1.

Ограничења:

2 <= nums.length == n <= 1000
-10^9 <= nums[i] <= 10^9
0 <= target <= 2 * 10^9


Дат је низ nums који се састоји од позитивних целих бројева.
Подниз низа називамо потпуним ако је испуњен следећи услов:

Број различитих елемената у поднизу је једнак броју различитих елемената у целом низу.

Вратите број потпуних поднизова.
Подниз је континуирани не-празан део низа.

Пример 1:

Улаз: nums = [1,3,1,2,2]
Излаз: 4
Објашњење: Комплетни поднизови су следећи: [1,3,1,2], [1,3,1,2,2], [3,1,2] и [3,1,2,2].

Пример 2:

Улаз: nums = [5,5,5,5]
Излаз: 10
Објашњење: Низ се састоји само од броја 5, тако да је било који подниз комплетан. Број поднизова које можемо изабрати је 10.

Ограничења:

1 <= nums.length <= 1000
1 <= nums[i] <= 2000

Дат вам је низ nums који се састоји од позитивних целих бројева.
Подниз низа називамо комплетним ако је испуњен следећи услов:

Број различитих елемената у поднизy једнак је броју различитих елемената у целом низу.

Вратите број комплетних поднизова.
Подниз је континуирани и непразан део низа.

Пример 1:

Улаз: nums = [1,3,1,2,2]
Излаз: 4
Објашњење: Комплетни поднизови су следећи: [1,3,1,2], [1,3,1,2,2], [3,1,2] и [3,1,2,2].

Пример 2:

Улаз: nums = [5,5,5,5]
Излаз: 10
Објашњење: Низ се састоји само од броја 5, тако да је било који подниз комплетан. Број поднизова које можемо изабрати је 10.

Ограничења:

1 <= nums.length <= 1000
1 <= nums[i] <= 2000

Дат вам је низ nums који се састоји од позитивних целих бројева.
Позивамо подниз комплетним ако је испуњен следећи услов:

Број различитих елемената у поднизу једнак је броју различитих елемената у целом низу.

Вратите број комплетних поднизова.
Подниз је континуирани непразан део низа.

Пример 1:

Улаз: nums = [1,3,1,2,2]
Излаз: 4
Објашњење: Комплетни поднизови су следећи: [1,3,1,2], [1,3,1,2,2], [3,1,2] и [3,1,2,2].

Пример 2:

Улаз: nums = [5,5,5,5]
Излаз: 10
Објашњење: Низ се састоји само од броја 5, тако да је било који подниз комплетан. Број поднизова које можемо изабрати је 10.

Ограничења:

1 <= nums.length <= 1000
1 <= nums[i] <= 2000


Камион има два резервоара за гориво. Дати су вам два цела броја, mainTank који представља количину горива у главном резервоару у литрима и additionalTank који представља количину горива у додатном резервоару у литрима.
Камион има километражу од 10 км по литру. Када се потроши 5 литара горива из главног резервоара, ако додатни резервоар има најмање 1 литар горива, 1 литар горива ће бити пребачен из додатног резервоара у главни резервоар.
Вратите максималну удаљеност коју може прећи.
Напомена: Прелив из додатног резервоара није континуиран. Дешава се изненада и одмах сваки пут када се потроши 5 литара.

Пример 1:

Улаз: mainTank = 5, additionalTank = 10
Излаз: 60
Објашњење:
Након потрошених 5 литара горива, гориво које је остало је (5 - 5 + 1) = 1 литар и пређена удаљеност је 50 км.
Након што је потрошен још 1 литар горива, нема убризгавања горива у главни резервоар и главни резервоар постаје празан.
Укупно пређена удаљеност је 60 км.

Пример 2:

Улаз: mainTank = 1, additionalTank = 2
Излаз: 10
Објашњење:
Након потрошеног 1 литра горива, главни резервоар постаје празан.
Укупно пређена удаљеност је 10 км.

Ограничења:

1 <= mainTank, additionalTank <= 100

Камион има два резервоара за гориво. Дата су вам два цела броја, mainTank који представља количину горива у главном резервоару у литрима и additionalTank који представља количину горива у додатном резервоару у литрима.
Камион има потрошњу од 10 км по литру. Када год се потроши 5 литара горива из главног резервоара, ако додатни резервоар има барем 1 литар горива, 1 литар горива ће бити пребачен из додатног резервоара у главни резервоар.
Вратите максималну раздаљину коју је могуће прећи.
Напомена: Пребацивање из додатног резервоара није континуирано. Дешава се изненада и одмах након потрошених 5 литара.

Пример 1:

Улаз: mainTank = 5, additionalTank = 10
Излаз: 60
Објашњење:
Након потрошених 5 литара горива, гориво које је остало је (5 - 5 + 1) = 1 литар и пређена раздаљина је 50 км.
Након што је потрошен још 1 литар горива, нема убризгавања горива у главни резервоар и главни резервоар постаје празан.
Укупно пређена раздаљина је 60 км.

Пример 2:

Улаз: mainTank = 1, additionalTank = 2
Излаз: 10
Објашњење:
Након потрошеног 1 литра горива, главни резервоар постаје празан.
Укупно пређена раздаљина је 10 км.

Ограничења:

1 <= mainTank, additionalTank <= 100

Камион има два резервоара за гориво. Дати су вам два цела броја, mainTank који представља количину горива у главном резервоару у литрима и additionalTank који представља количину горива у додатном резервоару у литрима.
Камион има потрошњу од 10 км по литру. Када се потроши 5 литара горива из главног резервоара, ако додатни резервоар има најмање 1 литар горива, 1 литар горива ће бити пренет из додатног резервоара у главни резервоар.
Вратите максималну удаљеност коју може прећи.
Напомена: Пренос из додатног резервоара није континуиран. Дешава се одједном и одмах након што се потроши 5 литара.

Пример 1:

Улаз: mainTank = 5, additionalTank = 10
Излаз: 60
Објашњење:
Након потрошених 5 литара горива, гориво које је остало је (5 - 5 + 1) = 1 литар и пређена раздаљина је 50 км.
Након што је потрошен још 1 литар горива, нема убризгавања горива у главни резервоар и главни резервоар постаје празан.
Укупно пређена раздаљина је 60 км.

Пример 2:

Улаз: mainTank = 1, additionalTank = 2
Излаз: 10
Објашњење:
Након потрошеног 1 литра горива, главни резервоар постаје празан.
Укупно пређена раздаљина је 10 км.

Ограничења:

1 <= mainTank, additionalTank <= 100


Дат вам је 0-индиксни низ целих бројева nums и цео број threshold.
Пронађите дужину најдужег подниза nums који почиње на индексу l и завршава се на индексу r (0 <= l <= r < nums.length) који задовољава следеће услове:

nums[l] % 2 == 0
За све индексе i у опсегу [l, r - 1], nums[i] % 2 != nums[i + 1] % 2
За све индексе i у опсегу [l, r], nums[i] <= threshold

Вратите цео број који означава дужину најдужег таквог подниза.
Напомена: Подниз је континуирана непразна секвенца елемената унутар низа.

Пример 1:

Input: nums = [3,2,5,4], threshold = 5
Output: 3
Објашњење: У овом примеру можемо изабрати подниз који почиње са l = 1 и завршава се са r = 3 => [2,5,4]. Овај подниз задовољава услове.
Због тога је одговор дужина подниза, 3. Можемо показати да је 3 максимално могућа остварива дужина.
Пример 2:

Input: nums = [1,2], threshold = 2
Output: 1
Објашњење: У овом примеру можемо изабрати подниз који почиње са l = 1 и завршава се са r = 1 => [2].
Задовољава све услове и можемо показати да је 1 максимално могућа остварива дужина.

Пример 3:

Input: nums = [2,3,4,5], threshold = 4
Output: 3
Објашњење: У овом примеру можемо изабрати подниз који почиње са l = 0 и завршава се са r = 2 => [2,3,4].
Задовољава све услове.
Због тога је одговор дужина подниза, 3. Можемо показати да је 3 максимално могућа остварива дужина.

Ограничења:

1 <= nums.length <= 100
1 <= nums[i] <= 100
1 <= threshold <= 100

Дат вам је низ целих бројева nums индексиран од нуле и цео број threshold.
Пронађите дужину најдужег подниза nums који почиње на индексу l и завршава се на индексу r (0 <= l <= r < nums.length) који задовољава следеће услове:

nums[l] % 2 == 0
За све индексе i у опсегу [l, r - 1], nums[i] % 2 != nums[i + 1] % 2
За све индексе i у опсегу [l, r], nums[i] <= threshold

Вратите цео број који означава дужину најдужег таквог подниза.
Напомена: Подниз је континуирана непразна секвенца елемената унутар низа.

Пример 1:

Input: nums = [3,2,5,4], threshold = 5
Output: 3
Објашњење: У овом примеру можемо изабрати подниз који почиње са l = 1 и завршава се са r = 3 => [2,5,4]. Овај подниз задовољава услове.
Због тога је одговор дужина подниза, 3. Можемо показати да је 3 максимално могућа остварива дужина.

Пример 2:

Input: nums = [1,2], threshold = 2
Output: 1
Објашњење: У овом примеру можемо изабрати подниз који почиње са l = 1 и завршава се са r = 1 => [2].
Задовољава све услове и можемо показати да је 1 максимално могућа остварива дужина.

Пример 3:

Input: nums = [2,3,4,5], threshold = 4
Output: 3
Објашњење: У овом примеру можемо изабрати подниз који почиње са l = 0 и завршава се са r = 2 => [2,3,4].
Задовољава све услове.
Због тога је одговор дужина подниза, 3. Можемо показати да је 3 максимално могућа остварива дужина.

Ограничења:

1 <= nums.length <= 100
1 <= nums[i] <= 100
1 <= threshold <= 100

Дат вам је 0 индексирани низ бројева целих бројева и праг целог броја.
Пронађите дужину најдужег подниза бројева који почиње индексом л и завршава се индексом r (0 <= l <= r < nums.length) који задовољава следеће услове:

nums[l] % 2 == 0
За све индексе i у опсегу [l, r - 1], nums[i] % 2 != nums[i + 1] % 2
За све индексе i у опсегу [l, r], nums[i] <= threshold

Врати цео број који означава дужину најдужег таквог подниза.
Напомена: Подниз је непрекидан непразан низ елемената унутар низа.

Пример 1:

Улаз: nums = [3,2,5,4], threshold = 5
Излаз: 3
Објашњење: У овом примеру можемо изабрати подниз који почиње на л = 1 и завршава се на р = 3 => [2,5,4]. Овај подниз задовољава услове.
Дакле, одговор је дужина подниза, 3. Можемо показати да је 3 највећа могућа достижна дужина.
Пример 2:

Улаз: nums = [1,2], threshold = 2
Излаз: 1
Објашњење: У овом примеру можемо изабрати подниз који почиње са l = 1 и завршава се са r = 1 => [2].
Задовољава све услове и можемо показати да је 1 највећа могућа достижна дужина.

Пример 3:

Улаз: nums = [2,3,4,5], threshold = 4
Излаз: 3
Објашњење: У овом примеру можемо изабрати подниз који почиње на л = 0 и завршава се са r = 2 => [2,3,4].
Задовољава све услове.
Дакле, одговор је дужина подниза, 3. Можемо показати да је 3 највећа могућа достижна дужина.

Ограничења:

1 <= nums.length <= 100
1 <= nums[i] <= 100
1 <= threshold <= 100


Дат вам је бинарни низ nums. Подниз низа је добар ако садржи тачно један елемент са вредношћу 1. Вратите цео број који означава број начина да се подели низ `nums` на добре поднизове. Пошто број може бити превелик, вратите га модуло 10^9 + 7. Подниз је континуирани непразан низ елемената унутар низа.

Пример 1:

Input: nums = [0,1,0,0,1]
Output: 3
Објашњење: Постоје 3 начина да се подели низ nums на добре поднизове:
- [0,1] [0,0,1]
- [0,1,0] [0,1]
- [0,1,0,0] [1]

Пример 2:

Input: nums = [0,1,0]
Output: 1
Објашњење: Постоји 1 начин да се подели низ nums на добре поднизове:
- [0,1,0]

Ограничења:

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

Дат вам је бинарни низ nums. Подниз низа је добар ако садржи тачно један елемент са вредношћу 1. Вратите цео број који означава број начина да се подели низ nums на добре поднизове. Пошто број може бити превелик, вратите га модуло 10^9 + 7. Подниз је континуирани непразан низ елемената унутар низа.

Пример 1:

Улаз: nums = [0,1,0,0,1]
Излаз: 3
Објашњење: Постоје 3 начина да се подели низ nums на добре поднизове:
- [0,1] [0,0,1]
- [0,1,0] [0,1]
- [0,1,0,0] [1]

Пример 2:

Улаз: nums = [0,1,0]
Излаз: 1
Објашњење: Постоји 1 начин да се подели низ nums на добре поднизове:
- [0,1,0]

Ограничења:

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

Добијате бинарни низ nums.
Подниз низа је добар ако садржи тачно један елемент са вредношћу 1.
Вратите цео број који означава број начина за поделу nums низа у добре поднизове. Пошто је број можда превелик, вратите га модуло 10 ^ 9 + 7.
Подниз је суседна не-празна секвенца елемената унутар низа.

Пример 1:

Улаз : nums = [0,1,0,0,1]
излаз : 3
Објашњење: Постоје 3 начина да се поделе nums у добре поднизове:
- [0,1] [0,0,1]
- [0,1,0] [0,1]
- [0,1,0,0] [1]

Пример 2:

Улаз : nums = [0,1,0]
излаз : 1
Објашњење: Постоји 1 начин да се поделе nums у добре поднизове:
- [0,1,0]

Ограничења:

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


Дат вам је низ целих бројева nums који је индексован од 0. Подниз низа nums се зове континуиран ако:

Нека су i, i + 1, ..., j_ индекси у подниз. Онда, за сваки пар индекса i <= i_1, i_2 <= j, 0 <= |nums[i_1] - nums[i_2]| <= 2.

Вратите укупан број континуираних подниза.
Подниз је континуирана непразна секвенца елемената унутар низа.

Пример 1:

Унос: nums = [5,4,2,4]
Излаз: 8
Објашњење:
Континуиран подниз величине 1: [5], [4], [2], [4].
Континуиран подниз величине 2: [5,4], [4,2], [2,4].
Континуиран подниз величине 3: [4,2,4].
Нема поднизова величине 4.
Укупно континуалних поднизова = 4 + 3 + 1 = 8.
Може се показати да нема више континуалних поднизова.

Пример 2:

Унос: nums = [1,2,3]
Излаз: 6
Објашњење:
Континуиран подниз величине 1: [1], [2], [3].
Континуиран подниз величине 2: [1,2], [2,3].
Континуиран подниз величине 3: [1,2,3].
Укупно континуалних поднизова = 3 + 2 + 1 = 6.

Ограничења:

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

Дат вам је низ целих бројева nums са индексом 0. Подниз низа nums назива се континуалним ако:

Нека су i, i + 1, ..., j_ индекси у подниз. Онда, за сваки пар индекса i <= i_1, i_2 <= j, 0 <= |nums[i_1] - nums[i_2]| <= 2.

Вратите укупан број континуалних поднизова. Подниз је непрекидан, непразан след елемената унутар низа.

Пример 1:

Улаз: nums = [5,4,2,4]
Излаз: 8
Објашњење:
Континуални подниз величине 1: [5], [4], [2], [4].
Континуални подниз величине 2: [5,4], [4,2], [2,4].
Континуални подниз величине 3: [4,2,4].
Нема поднизова величине 4.
Укупно континуалних поднизова = 4 + 3 + 1 = 8.
Може се показати да нема више континуалних поднизова.

Пример 2:

Улаз: nums = [1,2,3]
Излаз: 6
Објашњење:
Континуални подниз величине 1: [1], [2], [3].
Континуални подниз величине 2: [1,2], [2,3].
Континуални подниз величине 3: [1,2,3].
Укупно континуалних поднизова = 3 + 2 + 1 = 6.

Ограничења:

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

Дат вам је низ бројева индексираних целих бројева са 0. Подниз бројева назива се континуираним ако:

Нека су i, i + 1, ..., j_ индекси у подниз. Онда, за сваки пар индекса i <= i_1, i_2 <= j, 0 <= |nums[i_1] - nums[i_2]| <= 2.

Врати укупан број континуираних поднизова.
Подниз је непрекидан непразан низ елемената унутар низа.

Пример 1:

Улаз: nums = [5,4,2,4]
Излаз: 8
Објашњење:
Континуирани подниз величине 1: [5], [4], [2], [4].
Континуирани подниз величине 2: [5,4], [4,2], [2,4].
Континуирани подниз величине 3: [4,2,4].
Не постоје подбарови величине 4.
Укупни непрекидни поднизови = 4 + 3 + 1 = 8.
Може се показати да више не постоје непрекидни поднизови.

Пример 2:

Улаз: nums = [1,2,3]
Излаз: 6
Објашњење:
Континуирани подниз величине 1: [1], [2], [3].
Континуирани подниз величине 2: [1,2], [2,3].
Непрекидни подниз величине 3: [1,2,3].
Укупни непрекидни поднизови = 3 + 2 + 1 = 6.

Ограничења:

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


Date su dve celobrojne niza sa indeksima počevši od 0, nums1 i nums2, obe dužine n.
Definišimo još jednu celobrojnu niz sa indeksima počevši od 0, nums3, dužine n. Za svaki indeks i u opsegu \([0, n - 1]\), možete dodeliti ili nums1[i] ili nums2[i] vrednosti elementu nums3[i].
Vaš zadatak je da maksimalno produžite dužinu najdužeg ne-opadajućeg podniza u nums3 optimalnim izborom njegovih vrednosti.
Vratite ceo broj koji predstavlja dužinu najdužeg ne-opadajućeg podniza u nums3.
Napomena: Podniz je kontinuirana, ne-prazna sekvenca elemenata unutar niza.

Пример 1:

Унос: nums1 = [2,3,1], nums2 = [1,2,1]
Излаз: 2
Објашњење: Један начин да се конструише `nums3` је:
`nums3 = [nums1[0], nums2[1], nums2[2]] => [2,2,1]`.
Подниз који почиње са индексом 0 и завршава се на индексу 1, `[2,2]`, формира непрестано растући подниз дужине 2.
Можемо показати да је 2 максимална остварива дужина.

Пример 2:

Унос: nums1 = [1,3,2,1], nums2 = [2,2,3,4]
Излаз: 4
Објашњење: Један начин да се конструише `nums3` је:
`nums3 = [nums1[0], nums2[1], nums2[2], nums2[3]] => [1,2,3,4]`.
Цео низ формира непрестано растући подниз дужине 4, што га чини максималном остваривом дужином.

Пример 3:

Унос: nums1 = [1,1], nums2 = [2,2]
Излаз: 2
Објашњење: Један начин да се конструише `nums3` је:
`nums3 = [nums1[0], nums1[1]] => [1,1]`.
Цео низ формира непрестано растући подниз дужине 2, што га чини максималном остваривом дужином.

Ograničenja:
1 <= nums1.length == nums2.length == n <= 10^5
1 <= nums1[i], nums2[i] <= 10^9

Дате су вам две целобројне низове са индексом 0, `nums1` и `nums2`, дужине `n`.
Дефинишимо још један целобројни низ са индексом 0, `nums3`, дужине `n`. За сваки индекс `i` у опсегу [0, n - 1], можете доделити или `nums1[i]` или `nums2[i]` за `nums3[i]`.
Ваш задатак је да максимизирате дужину најдужег непрестано растућег подниза у `nums3` оптималним избором његових вредности.
Вратите цео број који представља дужину најдужег непрестано растућег подниза у `nums3`.
Напомена: Подниз је континуирана непразна секвенца елемената унутар низа.

Пример 1:

Унос: nums1 = [2,3,1], nums2 = [1,2,1]
Излаз: 2
Објашњење: Један начин да се конструише `nums3` је:
`nums3 = [nums1[0], nums2[1], nums2[2]] => [2,2,1]`.
Подниз који почиње са индексом 0 и завршава се на индексу 1, `[2,2]`, формира непрестано растући подниз дужине 2.
Можемо показати да је 2 максимална остварива дужина.

Пример 2:

Унос: nums1 = [1,3,2,1], nums2 = [2,2,3,4]
Излаз: 4
Објашњење: Један начин да се конструише `nums3` је:
`nums3 = [nums1[0], nums2[1], nums2[2], nums2[3]] => [1,2,3,4]`.
Цео низ формира непрестано растући подниз дужине 4, што га чини максималном остваривом дужином.

Пример 3:

Унос: nums1 = [1,1], nums2 = [2,2]
Излаз: 2
Објашњење: Један начин да се конструише `nums3` је:
`nums3 = [nums1[0], nums1[1]] => [1,1]`.
Цео низ формира непрестано растући подниз дужине 2, што га чини максималном остваривом дужином.

Ограничења:

1 <= nums1.length == nums2.length == n <= 10^5
1 <= nums1[i], nums2[i] <= 10^9

Дате су вам две целобројне низове са индексом 0, nums1 и nums2, дужине n.
Дефинишимо још један целобројни низ са индексом 0, nums3, дужине n. За сваки индекс i у опсегу [0, n - 1], можете доделити или nums1[i] или nums2[i] за nums3[i].
Ваш задатак је да максимизирате дужину најдужег непрестано растућег подниза у nums3 оптималним избором његових вредности.
Вратите цео број који представља дужину најдужег непрестано растућег подниза у nums3.
Напомена: Подниз је континуирана непразна секвенца елемената унутар низа.

Пример 1:

Улаз: nums1 = [2,3,1], nums2 = [1,2,1]
Излаз: 2
Објашњење: Један начин да се конструише nums3 је:
nums3 = [nums1[0], nums2[1], nums2[2]] => [2,2,1].
Подниз који почиње са индексом 0 и завршава се на индексу 1, [2,2], формира непрестано растући подниз дужине 2.
Можемо показати да је 2 максимална остварива дужина.

Пример 2:

Улаз: nums1 = [1,3,2,1], nums2 = [2,2,3,4]
Излаз: 4
Објашњење: Један начин да се конструише nums3 је:
nums3 = [nums1[0], nums2[1], nums2[2], nums2[3]] => [1,2,3,4].
Цео низ формира непрестано растући подниз дужине 4, што га чини максималном остваривом дужином.

Пример 3:

Улаз: nums1 = [1,1], nums2 = [2,2]
Излаз: 2
Објашњење: Један начин да се конструише nums3 је:
nums3 = [nums1[0], nums1[1]] => [1,1].
Цео низ формира непрестано растући подниз дужине 2, што га чини максималном остваривом дужином.

Ограничења:

1 <= nums1.length == nums2.length == n <= 10^5
1 <= nums1[i], nums2[i] <= 10^9


Дат је низ целих бројева nums индексираних од 0. Подниз s дужине m назива се наизменичним ако:

m је веће од 1.
s_1 = s_0 + 1.
Подниз индексиран од 0 с изгледа као [s_0, s_1, s_0, s_1,...,s_(m-1) % 2]. Другим речима, s_1 - s_0 = 1, s_2 - s_1 = -1, s_3 - s_2 = 1, s_4 - s_3 = -1, и тако даље до s[m - 1] - s[m - 2] = (-1)^m.

Вратите максималну дужину свих наизменичних поднизова који се налазе у nums или -1 ако такав подниз не постоји.
Подниз је континуална непразна секвенца елемената унутар низа.

Пример 1:

Унос: nums = [2,3,4,3,4]
Излаз: 4
Објашњење: Наизменични поднизови су [3,4], [3,4,3] и [3,4,3,4]. Најдужи од њих је [3,4,3,4], који је дужине 4.

Пример 2:

Унос: nums = [4,5,6]
Излаз: 2
Објашњење: [4,5] и [5,6] су једина два наизменична подниза. Оба су дужине 2.

Ограничења:

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

Дат је низ целих бројева nums индексираних од 0. Подниз s дужине m назива се наизменичним ако:

m је веће од 1.
s_1 = s_0 + 1.
Подниз индексиран од 0 с изгледа као [s_0, s_1, s_0, s_1,...,s_(m-1) % 2]. Другим речима, s_1 - s_0 = 1, s_2 - s_1 = -1, s_3 - s_2 = 1, s_4 - s_3 = -1, и тако даље до s[m - 1] - s[m - 2] = (-1)^m.

Вратите максималну дужину свих наизменичних подниза присутних у nums, или -1 ако такав подниз не постоји.
Подниз је непрекидан, непразан низ елемената унутар низа.

Пример 1:

Улаз: nums = [2,3,4,3,4]
Излаз: 4
Објашњење: Наизменични поднизови су [3,4], [3,4,3] и [3,4,3,4]. Најдужи од њих је [3,4,3,4], који је дужине 4.

Пример 2:

Улаз: nums = [4,5,6]
Излаз: 2
Објашњење: [4,5] и [5,6] су једина два наизменична подниза. Оба су дужине 2.

Ограничења:

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

Дат вам је низ бројева индексираних целих бројева са 0. Подниз с дужине м назива се наизменичним ако:

m је већи од 1.
s_1 = s_0 + 1.
0-индексирани подниз с изгледа као [s_0, s_1, s_0, s_1,...,s_(m-1) % 2]. Другим речима, s_1 - s_0 = 1, s_2 - s_1 = -1, s_3 - s_2 = 1, s_4 - s_3 = -1, и тако даље до s[m - 1] - s[m - 2] = (-1)^m.

Врати максималну дужину свих наизменичних поднизова присутних у бројевима или -1 ако такав подниз не постоји.
Подниз је непрекидан непразан низ елемената унутар низа.

Пример 1:

Улаз: nums = [2,3,4,3,4]
Излаз: 4
Објашњење: Наизменични поднизови су [3,4], [3,4,3] и [3,4,3,4]. Најдужи од њих је [3,4,3,4], који је дужине 4.

Пример 2:

Улаз: nums = [4,5,6]
Излаз: 2
Објашњење: [4,5] и [5,6] су једина два наизменична подниза. Оба су дужине 2.

Ограничења:

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