Дат вам је низ са 0-базираним индексом `nums` дужине `n` који се састоји од позитивних целих бројева. Такође вам је дат 2D низ `queries` дужине `m` где је `queries[i] = [index_i, k_i]`. У почетку су сви елементи низа неозначени. Потребно је применити `m` упита на низу редоследом, где за `i`-ти упит радите следеће:

Означите елемент на индексу `index_i` ако већ није означен.
Затим означите `k_i` неозначених елемената у низу са најмањим вредностима. Ако постоји више таквих елемената, означите оне са најмањим индексима. И ако постоји мање од `k_i` неозначених елемената, означите све.

Вратите низ `answer` дужине `m` где је `answer[i]` збир неозначених елемената у низу након `i`-тог упита.

Пример 1:

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

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

Пример 2:

Унос: nums = [1,4,2,3], queries = [[0,1]]
Излаз: [7]
Објашњење: Радимо један упит који означава елемент на индексу 0 и означава најмањи елемент међу неозначеним елементима. Означени елементи ће бити nums = [1,4,2,3], и збир неозначених елемената је 4 + 3 = 7.

Ограничења:

n == nums.length
m == queries.length
1 <= m <= n <= 10^5
1 <= nums[i] <= 10^5
queries[i].length == 2
0 <= index_i, k_i <= n - 1

Дат вам је низ са 0-базираним индексом nums дужине n који се састоји од позитивних целих бројева.
Такође вам је дат 2D низ queries дужине m где је queries[i] = [index_i, k_i].
На почетку су сви елементи низа неозначени.
Потребно је применити m упита на низ редом, где код i-тог упита радите следеће:

Означите елемент на индексу index_i ако већ није означен.
Затим означите k_i неозначених елемената у низу са најмањим вредностима. Ако постоји више таквих елемената, означите оне са најмањим индексима. И ако постоји мање од k_i неозначених елемената, означите све.

Вратите низ answer дужине m где је answer[i] збир неозначених елемената у низу након i-тог упита.

Пример 1:

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

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

Пример 2:

Улаз: nums = [1,4,2,3], queries = [[0,1]]
Излаз: [7]
Објашњење: Радимо један упит, који је означити елемент на индексу 0 и означити најмањи елемент међу неозначеним елементима. Означени елементи биће nums = [1,4,2,3], а збир неозначених елемената је 4 + 3 = 7.

Ограничења:

n == nums.length
m == queries.length
1 <= m <= n <= 10^5
1 <= nums[i] <= 10^5
queries[i].length == 2
0 <= index_i, k_i <= n - 1


Дат вам је низ s. Сваки s[i] је или мало енглеско слово или '?'.
За низ t дужине m који садржи само мала енглеска слова, дефинишемо функцију cost(i) за индекс i као број карактера једнаких t[i] који су се појавили пре њега, тј. у опсегу [0, i - 1].
Вредност t је збир cost(i) за све индексе i.
На пример, за низ t = "aab":

cost(0) = 0
cost(1) = 1
cost(2) = 0
Дакле, вредност "aab" је 0 + 1 + 0 = 1.

Ваш задатак је да замените све појаве '?' у s било којим малим енглеским словом тако да вредност s буде минимизована.
Вратите низ који представља модификовани низ са замењеним појавама '?'. Ако постоји више низова који резултирају минималном вредношћу, вратите лексикографски најмањи.

Пример 1:

Улаз:   s = "???"
Излаз:   "abc"
Објашњење:  У овом примеру, можемо заменити појаве '?' да s буде једнако "abc".
За "abc", cost(0) = 0, cost(1) = 0, и cost(2) = 0.
Вредност "abc" је 0.
Неке друге модификације s које имају вредност 0 су "cba", "abz", и, "hey".
Међу свима њима, бирамо лексикографски најмањи.

Пример 2:

Улаз:  s = "a?a?"
Излаз:  "abac"
Објашњење:  У овом примеру, појаве '?' могу бити замењене да s буде једнако "abac".
За "abac", cost(0) = 0, cost(1) = 0, cost(2) = 1, и cost(3) = 0.
Вредност "abac" је 1.

Ограничења:

1 <= s.length <= 10^5
s[i] је или мало енглеско слово или '?'.

Дата вам је ниска s. s[i] је или мало енглеско слово или '?'.
За ниску t дужине m која садржи само мала енглеска слова, дефинишемо функцију cost(i) за индекс i као број карактера једнаких t[i] који су се појавили пре њега, тј. у опсегу [0, i - 1].
Вредност t је збир cost(i) за све индексе i.
На пример, за ниску t = "aab":

cost(0) = 0
cost(1) = 1
cost(2) = 0
Дакле, вредност "aab" је 0 + 1 + 0 = 1.

Ваш задатак је да замените све појаве '?' у s било којим малим енглеским словом тако да вредност s буде минимизована.
Вратите ниску која представља модификовану ниску са замењеним појавама '?'. Ако постоји више ниски који резултирају минималном вредношћу, вратите лексикографски најмањи.

Пример 1:

Улаз:   s = "???"
Излаз:   "abc"
Објашњење:  У овом примеру, можемо заменити појаве '?' да s буде једнако "abc".
За "abc", cost(0) = 0, cost(1) = 0, и cost(2) = 0.
Вредност "abc" је 0.
Неке друге модификације s које имају вредност 0 су "cba", "abz", и, "hey".
Међу свима њима, изаберемо лексикографски најмањи.

Пример 2:

Улаз:  s = "a?a?"
Излаз:  "abac"
Објашњење:  У овом примеру, појаве '?' могу бити замењене да s буде једнако "abac".
За "abac", cost(0) = 0, cost(1) = 0, cost(2) = 1, и cost(3) = 0.
Вредност "abac" је 1.

Ограничења:

1 <= s.length <= 10^5
s[i] је или мало енглеско слово или '?'.

Дат вам је низ s. s[i] је или мало слово енглеског језика или '?'.
За стринг т дужине м који садржи само мала слова енглеског језика, дефинишемо функцију cost(i) за индекс и као број знакова једнак t[i] који су се појавили пре њега, односно у опсегу [0, i - 1].
Вредност т је збир трошкова(и) за све индексе и.
На пример, за стринг t = "aab":

cost(0) = 0
cost(1) = 1
cost(2) = 0
Дакле, вредност "aab" је 0 + 1 + 0 = 1.

Ваш задатак је да замените сва појављивања '?' у с било којим малим енглеским словом тако да је вредност с минимизирана.
Врати стринг који означава измењени низ са замењеним појављивањима „?“. Ако постоји више стрингова који резултирају минималном вредношћу, вратите лексикографски најмању.

Пример 1:

Улаз: s = "???"
Излаз: "abc"
Објашњење: У овом примеру можемо да заменимо појављивања '?' да би с било једнако "abc".
За „abc“, cost(0) = 0, cost(1) = 0 и cost(2) = 0.
Вредност "abc" је 0.
Неке друге модификације с које имају вредност 0 су "cba", "abz" и, "hey".
Међу свима њима бирамо лексикографски најмању.

Пример 2:

Улаз: s = "a?a?"
Излаз: "abac"
Објашњење: У овом примеру, појављивања '?' може се заменити да би с био једнак са "abac".
За „abac“, cost(0) = 0, cost(1) = 0, cost(2) = 1 и cost(3) = 0.
Вредност "abac" је 1.

Ограничења:

1 <= s.length <= 10^5
s[i] је или мало слово енглеског језика или '?'.


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

Пример 1:

Улаз:   nums = [1,2,3], k = 3
Излаз:   6
Објашњење:
Постоји 5 подниза из(nums) са ненултом снагом:

Подниз [1,2,3] има 2 подниза са збиром == 3: [1,2,3] и [1,2,3].
Подниз [1,2,3] има 1 подниз са збиром == 3: [1,2,3].
Подниз [1,2,3] има 1 подниз са збиром == 3: [1,2,3].
Подниз [1,2,3] има 1 подниз са збиром == 3: [1,2,3].
Подниз [1,2,3] има 1 подниз са збиром == 3: [1,2,3].

Због тога је одговор 2 + 1 + 1 + 1 + 1 = 6.

Пример 2:

Улаз:   nums = [2,3,3], k = 5
Излаз:   4
Објашњење:
Постоје 3 подниза из низа nums са ненултом снагом:

Подниз [2,3,3] има 2 подниза са збиром == 5: [2,3,3] и [2,3,3].
Подниз [2,3,3] има 1 подниз са збиром == 5: [2,3,3].
Подниз [2,3,3] има 1 подниз са збиром == 5: [2,3,3].

Због тога је одговор 2 + 1 + 1 = 4.

Пример 3:

Улаз:   nums = [1,2,3], k = 7
Излаз:   0
Објашњење: Не постоји подниз сa збиром 7. Због тога, сви поднизи из(nums) имају снагу = 0.

Ограничења:

1 <= n <= 100
1 <= nums[i] <= 10^4
1 <= k <= 100

Дат је низ целих бројева nums дужине n и позитиван цео број k.
Снага низа целих бројева је дефинисана као број поднаредби са њиховом сумом једнаком к.
Вратите збир снага свих поднаредби бројева.
Пошто одговор може бити веома велик, вратите га модуло 10 ^ 9 + 7.

Пример 1:

Улаз : nums = [1,2,3], к = 3
излаз : 6
Објаљњење:
Постоји 5 поднаредби нумера са ненултим снагом:

Подсеквенца [1,2,3] има 2 подсеквенце са сумом = = 3: [1,2,3] и [1,2,3].
Подсеквенца [1,2,3] има 1 подсеквенцу са сумом = = 3: [1,2,3].
Подсеквенца [1,2,3] има 1 подсеквенцу са сумом = = 3: [1,2,3].
Подсеквенца [1,2,3] има 1 подсеквенцу са сумом = = 3: [1,2,3].
Подсеквенца [1,2,3] има 1 подсеквенцу са сумом = = 3: [1,2,3].

Отуда је одговор 2 + 1 + 1 + 1 + 1 = 6.

Пример 2:

Улаз : nums = [2,3,3], к = 5
излаз : 4
Објаљњење:
Постоје 3 подсеквенце нумера са нултом снагом:

Подсеквенца [2,3,3] има 2 подсеквенце са сумом = = 5: [2,3,3] и [2,3,3].
Субсеквенца [2,3,3] има 1 подсеквенцу са сумом = = 5: [2,3,3].
Субсеквенца [2,3,3] има 1 подсеквенцу са сумом = = 5: [2,3,3].

Отуда је одговор 2 + 1 + 1 = 4.

Пример 3:

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

Ограничења:

1 <= n <= 100
1 <= nums[i] <= 10^4
1 <= k <= 100

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

Пример 1:

Улаз: nums = [1,2,3], k = 3
Излаз: 6
Објашњење:
Постоји 5 поднизова бројева са снагом која није нула:

Подниз [1,2,3] има 2 подниза са сумом == 3: [1,2,3] и [1,2,3].
Подниз [1,2,3] има 1 подниз са збиром == 3: [1,2,3].
Подниз [1,2,3] има 1 подниз са збиром == 3: [1,2,3].
Подниз [1,2,3] има 1 подниз са сумом == 3: [1,2,3].
Подниз [1,2,3] има 1 подниз са збиром == 3: [1,2,3].

Дакле, одговор је 2 + 1 + 1 + 1 + 1 = 6.

Пример 2:

Улаз: nums = [2,3,3], k = 5
Излаз: 4
Објашњење:
Постоје 3 подниза бројева са снагом која није нула:

Подниз [2,3,3] има 2 подниза са сумом = 5: [2,3,3] и [2,3,3].
Подниз [2,3,3] има 1 подниз са сумом = 5: [2,3,3].
Подниз [2,3,3] има 1 подниз са сумом = 5: [2,3,3].

Дакле, одговор је 2 + 1 + 1 = 4.

Пример 3:

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

Ограничења:

1 <= n <= 100
1 <= nums[i] <= 10^4
1 <= k <= 100


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

Пример 1:

Улаз: nums = [1,2,3], k = 2
Излаз: 1
Објашњење:
Подниз [3] има OR вредност 3. Према томе, враћамо 1.

Пример 2:

Улаз: nums = [2,1,8], k = 10
Излаз: 3
Објашњење:
Подниз [2,1,8] има OR вредност 11. Према томе, враћамо 3.

Пример 3:

Улаз: nums = [1,2], k = 0
Излаз: 1
Објашњење:
Подниз [1] има OR вредност 1. Према томе, враћамо 1.

Ограничења:

1 <= nums.length <= 50
0 <= nums[i] <= 50
0 <= k < 64

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

Пример 1:

Улаз: nums = [1,2,3], k = 2
Излаз: 1
Објашњење:
Подниз [3] има ИЛИ вредност 3. Према томе, враћамо 1.

Пример 2:

Улаз: nums = [2,1,8], k = 10
Излаз: 3
Објашњење:
Подниз [2,1,8] има ИЛИ вредност 11. Према томе, враћамо 3.

Пример 3:

Улаз: nums = [1,2], k = 0
Излаз: 1
Објашњење:
Подниз [1] има ИЛИ вредност 1. Према томе, враћамо 1.

Ограничења:

1 <= nums.length <= 50
0 <= nums[i] <= 50
0 <= k < 64

Dat vam je niz nums sastavljen od nenegativnih celih brojeva i ceo broj k.
Niz se naziva specijalnim ako bitovski OR svih njegovih elemenata iznosi bar k.
Vratite dužinu najkraćeg specijalnog nepraznog podniza niza nums, ili vratite -1 ako ne postoji specijalan podniz.

Primer 1:

Ulaz:
nums = [1,2,3], k = 2
Izlaz:
1
Objašnjenje:
Podniz [3] ima OR vrednost 3. Dakle, vraćamo 1.

Primer 2:

Ulaz:
nums = [2,1,8], k = 10
Izlaz:
3
Objašnjenje:
Podniz [2,1,8] ima OR vrednost 11. Dakle, vraćamo 3.

Primer 3:

Ulaz:
nums = [1,2], k = 0
Izlaz:
1
Objašnjenje:
Podniz [1] ima OR vrednost 1. Dakle, vraćamo 1.

Ograničenja:

1 <= nums.length <= 50
0 <= nums[i] <= 50
0 <= k < 64


Дат је бинарни низ possible дужине n.
Алиса и Боб играју игру која се састоји од n нивоа. Неки нивои у игри су немогући за прелазак, док се други увек могу прећи. Конкретно, ако је possible[i] == 0, онда је i-ти ниво немогуће прећи за оба играча. Играч добија 1 поен када пређе ниво и губи 1 поен ако не успе да га пређе.
На почетку игре, Алиса ће играти неколико нивоа редом, почевши од нивоа 0, након чега ће Боб играти остатак нивоа.
Алису занима минималан број нивоа које треба да одигра да би освојила више поена од Боба, ако оба играча играју оптимално како би максимизовали своје поене.
Вратите минималан број нивоа које Алиса треба да одигра да би освојила више поена. Ако то није могуће, вратите -1.
Напомињемо да сваки играч мора одиграти барем 1 ниво.

Пример 1:

Улаз: possible = [1,0,1,0]
Излаз: 1
Објашњење:
Погледајмо све нивое које Алица може одиграти:

Ако Алица игра само ниво 0 и Боб игра остатак нивоа, Алица има 1 поен, док Боб има -1 + 1 - 1 = -1 поен.
Ако Алица игра до нивоа 1 и Боб игра остатак нивоа, Алица има 1 - 1 = 0 поена, док Боб има 1 - 1 = 0 поена.
Ако Алица игра до нивоа 2 и Боб игра остатак нивоа, Алица има 1 - 1 + 1 = 1 поен, док Боб има -1 поен.

Алица мора одиграти минимум 1 ниво да би освојила више поена.

Пример 2:

Улаз: possible = [1,1,1,1,1]
Излаз: 3
Објашњење:
Погледајмо све нивое које Алица може одиграти:

Ако Алица игра само ниво 0 и Боб игра остатак нивоа, Алица има 1 поен, док Боб има 4 поена.
Ако Алица игра до нивоа 1 и Боб игра остатак нивоа, Алица има 2 поена, док Боб има 3 поена.
Ако Алица игра до нивоа 2 и Боб игра остатак нивоа, Алица има 3 поена, док Боб има 2 поена.
Ако Алица игра до нивоа 3 и Боб игра остатак нивоа, Алица има 4 поена, док Боб има 1 поен.

Алица мора одиграти минимум 3 нивоа да би освојила више поена.

Пример 3:

Улаз: possible = [0,0]
Излаз: -1
Објашњење:
Једини могући начин је да оба играча одиграју по 1 ниво. Алица игра ниво 0 и губи 1 поен. Боб игра ниво 1 и губи 1 поен. Пошто оба играча имају исте поене, Алица не може освојити више поена од Боба.

Ограничења:

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

Дат је бинарни низ possible дужине n.
Алиса и Боб играју игру која се састоји од n нивоа. Неки нивои у игри су немогући за прелазак, док се остали могу увек прећи. Конкретно, ако је possible[i] == 0, онда је i-ти ниво немогуће прећи за оба играча. Играчу се додељује 1 поен када пређе ниво и одузима му се 1 поен ако не успе да га пређе.

На почетку игре, Алиса ће играти одређени број нивоа редом, почевши од нивоа 0, након чега ће Боб играти остатак нивоа.

Алиса жели да зна минималан број нивоа које треба да одигра како би освојила више поена од Боба, ако оба играча играју оптимално да максимизују своје поене.

Вратите минималан број нивоа које Алиса треба да одигра да би освојила више поена. Ако то није могуће, вратите -1.
Напомена: Сваки играч мора одиграти барем 1 ниво.

Пример 1:

Улаз: possible = [1,0,1,0]
Излаз: 1
Објашњење:
Погледајмо све нивое које Алица може одиграти:

Ако Алица игра само ниво 0 и Боб игра остатак нивоа, Алица има 1 поен, док Боб има -1 + 1 - 1 = -1 поен.
Ако Алица игра до нивоа 1 и Боб игра остатак нивоа, Алица има 1 - 1 = 0 поена, док Боб има 1 - 1 = 0 поена.
Ако Алица игра до нивоа 2 и Боб игра остатак нивоа, Алица има 1 - 1 + 1 = 1 поен, док Боб има -1 поен.

Алица мора одиграти минимум 1 ниво да би освојила више поена.

Пример 2:

Улаз: possible = [1,1,1,1,1]
Излаз: 3
Објашњење:
Погледајмо све нивое које Алица може одиграти:

Ако Алица игра само ниво 0 и Боб игра остатак нивоа, Алица има 1 поен, док Боб има 4 поена.
Ако Алица игра до нивоа 1 и Боб игра остатак нивоа, Алица има 2 поена, док Боб има 3 поена.
Ако Алица игра до нивоа 2 и Боб игра остатак нивоа, Алица има 3 поена, док Боб има 2 поена.
Ако Алица игра до нивоа 3 и Боб игра остатак нивоа, Алица има 4 поена, док Боб има 1 поен.

Алица мора одиграти минимум 3 нивоа да би освојила више поена.

Пример 3:

Улаз: possible = [0,0]
Излаз: -1
Објашњење:
Једини могући начин је да оба играча играју по 1 ниво. Алиса игра ниво 0 и губи 1 поен. Боб игра ниво 1 и губи 1 поен. Пошто оба играча имају једнак број поена, Алиса не може освојити више поена од Боба.

Ограничења:

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

Дат вам је могући бинарни низ дужине n.
Алис и Боб играју игру која се састоји од n нивоа. Неке од нивоа у игри су немогуће очистити док се други увек могу очистити. Конкретно, ако је possible[i] == 0, онда је i-ти ниво немогуће пребродити за оба играча. Играчу се додељује 1 поен ако успешно пређе ниво и губи 1 поен ако не успе да га преброди.
На почетку игре, Алица ће играти неке нивое по датом редоследу почевши од 0-тог нивоа, након чега ће Боб играти остатак нивоа.
Алиса жели да зна који минимални број нивоа треба да игра да би добила више поена од Боба, ако оба играча играју оптимално да би максимизирали своје поене.
Вратите минимални број нивоа које Алиса треба да одигра да би стекла више поена. Ако то није могуће, вратите -1.
Имајте на уму да сваки играч мора играти најмање 1 ниво.

Пример 1:

Улаз: possible = [1,0,1,0]
Излаз: 1
Објашњење:
Хајде да погледамо све нивое до којих Алиса може да игра:

Ако Алица игра само ниво 0 и Боб игра остатак нивоа, Алица има 1 поен, док Боб има -1 + 1 - 1 = -1 поен.
Ако Алица игра до нивоа 1 и Боб игра остатак нивоа, Алица има 1 - 1 = 0 поена, док Боб има 1 - 1 = 0 поена.
Ако Алица игра до нивоа 2 и Боб игра остатак нивоа, Алица има 1 - 1 + 1 = 1 поен, док Боб има -1 поен.

Алиса мора да игра најмање 1 ниво да би добила више поена.

Пример 2:

Улаз: possible = [1,1,1,1,1]
Излаз: 3
Објашњење:
Хајде да погледамо све нивое до којих Алиса може да игра:

Ако Алица игра само ниво 0 и Боб игра остатак нивоа, Алица има 1 поен, док Боб има 4 поена.
Ако Алица игра до нивоа 1 и Боб игра остатак нивоа, Алица има 2 поена, док Боб има 3 поена.
Ако Алица игра до нивоа 2 и Боб игра остатак нивоа, Алица има 3 поена, док Боб има 2 поена.
Ако Алица игра до нивоа 3 и Боб игра остатак нивоа, Алица има 4 поена, док Боб има 1 поен.

Алиса мора да игра најмање 3 нивоа да би добила више поена.

Пример 3:

Улаз: possible = [0,0]
Излаз: -1
Објашњење:
Једини могући начин је да оба играча играју по 1 ниво. Алиса игра ниво 0 и губи 1 поен. Боб игра ниво 1 и губи 1 поен. Пошто оба играча имају једнаке бодове, Алис не може да добије више поена од Боба.

Ограничења:

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


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

Пример 1:

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

Пример 2:

Улаз: nums = [2, 2], k = 2
Излаз: 0

Објашњење:
Једини подниз у низу који има дужину 2 је [2, 2]. Збир снага је |2 - 2| = 0.

Пример 3:

Улаз: nums = [4, 3, -1], k = 2
Излаз: 10
Објашњење:
Постоје 3 подниза у низу који имају дужину 2: [4, 3], [4, -1] и [3, -1]. Збир снага је |4 - 3| + |4 - (-1)| + |3 - (-1)| = 10.

Ограничења:
2 <= n == nums.length <= 50
-10^8 <= nums[i] <= 10^8
2 <= k <= n

Дат вам је цео бројевни низ nums дужине n, и позитиван цео број k.
Снага подниза се дефинише као минимална апсолутна разлика између било која два елемента у поднизу.
Вратите збир снага свих поднизова nums који имају дужину једнаку k.
Пошто одговор може бити велики, вратите га модуло 10^9 + 7.

Пример 1:

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

Пример 2:

Улаз: nums = [2,2], k = 2
Излаз: 0
Објашњење: Једини подниз у nums који има дужину 2 је [2,2]. Збир снага је |2 - 2| = 0.

Пример 3:

Улаз: nums = [4,3,-1], k = 2
Излаз: 10
Објашњење: Постоје 3 подниза у nums који имају дужину 2: [4,3], [4,-1] и [3,-1]. Збир снага је |4 - 3| + |4 - (-1)| + |3 - (-1)| = 10.

Ограничења:

2 <= n == nums.length <= 50
-10^8 <= nums[i] <= 10^8
2 <= k <= n

Дат вам је низ целих бројева nums дужине n, и позитиван целобројни број k.
Снага поднизова дефинисана је као минимална апсолутна разлика између било која два елемента у поднизову.
Вратите суму снага свих поднизова низа nums који имају дужину једнаку k.
Пошто одговор може бити веома велики, вратите га по модулу 10^9 + 7.

Пример 1:

Улаз: `nums = [1,2,3,4]`, `k = 3`
Излаз: `4`
Објашњење: Постоје 4 подниза у `nums` који имају дужину 3: `[1,2,3]`, `[1,3,4]`, `[1,2,4]` и `[2,3,4]`. Збир снага је $|2 - 3| + |3 - 4| + |2 - 1| + |3 - 4| = 4$.

Пример 2:

Улаз: `nums = [2,2]`, `k = 2`
Излаз: `0`
Објашњење: Једини подниз у `nums` који има дужину 2 је `[2,2]`. Збир снага је $|2 - 2| = 0$.

Пример 3:

Улаз: `nums = [4,3,-1]`, `k = 2`
Излаз: `10`
Објашњење: Постоје 3 подниза у `nums` који имају дужину 2: `[4,3]`, `[4,-1]` и `[3,-1]`. Збир снага је $|4 - 3| + |4 - (-1)| + |3 - (-1)| = 10$.

Ограничења:

2 <= n == nums.length <= 50
-10^8 <= nums[i] <= 10^8
2 <= k <= n


Дат вам је низ s. Скор низа се дефинише као збир апсолутних разлика између ASCII вредности суседних карактера.
Вратите скор низа s.

Пример 1:

Улаз: s = "hello"
Излаз: 13
Објашњење:
ASCII вредности карактера у низу s су: 'h' = 104, 'e' = 101, 'l' = 108, 'o' = 111. Дакле, оцена низа би била |104 - 101| + |101 - 108| + |108 - 108| + |108 - 111| = 3 + 7 + 0 + 3 = 13.

Пример 2:

Улаз: s = "zaz"
Излаз: 50
Објашњење:
ASCII вредности карактера у низу s су: 'z' = 122, 'a' = 97. Дакле, оцена низа би била |122 - 97| + |97 - 122| = 25 + 25 = 50.

Ограничења:

2 <= s.length <= 100
s се састоји само од малих слова енглеског алфабета.

Дају вам низ с. оцена низа је дефинисан као збир апсолутне разлике између ASCII вредности суседних знакова.
Вратите оцена s.

Пример 1:

Улаз: s = "hello"
Излаз: 13
Објашњење:
ASCII вредности ликова у s су: 'h' = 104, 'e' = 101, 'l' = 108, 'o' = 111. Дакле, оцена низа би била |104 - 101| + |101 - 108| + |108 - 108| + |108 - 111| = 3 + 7 + 0 + 3 = 13.
Пример 2:

Улаз: s = "zaz"
Излаз: 50
Објашњење:
ASCII вредности ликова у s су: 'z' = 122, 'a' = 97. Дакле, оцена С би била 122 - 97 | + | 97 - 122 | = 25 + 25 = 50.

Ограничења:

2 <= s.length <= 100
s се састоји само од малих слова енглеског алфабета.

Добијате стринг s. бодовање низа је дефинисан као збир апсолутне разлике између ASCII вредности суседних знакова.
Вратите бодовање s.

Пример 1:

Улаз : s = "hello"
излаз : 13
Објашњење:
АСЦИИ вредности знакова у с су: 'h' = 104, 'e' = 101, 'l' = 108, 'o' = 111. Дакле, бодовање с било би | 104 - 101 | + | 101 - 108 | + | 108 - 108 | + | 108 - 111 | = 3 + 7 + 0 + 3 = 13.

Пример 2:

Улаз : s = "zaz"
излаз : 50
Објашњење:
АСЦИИ вредности знакова у с су: 'z' = 122, 'а' = 97. Дакле , бодовање с би био | 122 - 97 | + | 97 - 122 | = 25 + 25 = 50.

Ограничења:

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


Data je niz pozitivnih celih brojeva nums.
Vratite broj podnizova niza nums, gde su prvi i poslednji elementi podniza jednaki najvećem elementu u podnizu.

Primer 1:

Ulaz: nums = [1,4,3,3,2]
Izlaz: 6
Objašnjenje:
Postoji 6 podnizova koji imaju prvi i poslednji element jednak najvećem elementu podniza:

- Podniz [1,4,3,3,2], čiji je najveći element 1. Prvi element je 1, a poslednji element je takođe 1.
- Podniz [1,4,3,3,2], čiji je najveći element 4. Prvi element je 4, a poslednji element je takođe 4.
- Podniz [1,4,3,3,2], čiji je najveći element 3. Prvi element je 3, a poslednji element je takođe 3.
- Podniz [1,4,3,3,2], čiji je najveći element 3. Prvi element je 3, a poslednji element je takođe 3.
- Podniz [1,4,3,3,2], čiji je najveći element 2. Prvi element je 2, a poslednji element je takođe 2.
- Podniz [1,4,3,3,2], čiji je najveći element 3. Prvi element je 3, a poslednji element je takođe 3.

Zato vraćamo 6.

Primer 2:

Ulaz: nums = [3,3,3]
Izlaz: 6
Objašnjenje:
Postoji 6 podnizova koji imaju prvi i poslednji element jednak najvećem elementu podniza:

- Podniz [3,3,3], čiji je najveći element 3. Prvi element je 3, a poslednji element je takođe 3.
- Podniz [3,3,3], čiji je najveći element 3. Prvi element je 3, a poslednji element je takođe 3.
- Podniz [3,3,3], čiji je najveći element 3. Prvi element je 3, a poslednji element je takođe 3.
- Podniz [3,3,3], čiji je najveći element 3. Prvi element je 3, a poslednji element je takođe 3.
- Podniz [3,3,3], čiji je najveći element 3. Prvi element je 3, a poslednji element je takođe 3.
- Podniz [3,3,3], čiji je najveći element 3. Prvi element je 3, a poslednji element je takođe 3.

Zato vraćamo 6.

Primer 3:

Ulaz: nums = [1]
Izlaz: 1
Objašnjenje:
Postoji jedan podniz niza nums, koji je [1], čiji je najveći element 1. Prvi element je 1, a poslednji element je takođe 1.
Zato vraćamo 1.

Ograničenja:

- 1 <= dužina niza nums <= 10^5
- 1 <= nums[i] <= 10^9

Дајете низу позитивних целих бројева.
Вратите број Субарраи од Нумс-а, где су први и последњи елементи Субрара једнаке највећем елементу у Субарану.

Пример 1:

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

Субарраи [1,4,3,3,2], са својим највећим елементом 1. први елемент је 1 и последњи елемент је такође 1.
Субарраи [1,4,3,3,2], са својим највећим елементом 4. Први елемент је 4 и последњи елемент је такође 4.
Субарраи [1,4,3,3,2], са својим највећим елементом 3. први елемент је 3 и последњи елемент је такође 3.
Субарраи [1,4,3,3,2], са својим највећим елементом 3. први елемент је 3 и последњи елемент је такође 3.
Субарраи [1,4,3,3,2], са својим највећим елементом 2. Први елемент је 2 и последњи елемент је такође 2.
Субарраи [1,4,3,3,2], са својим највећим елементом 3. први елемент је 3 и последњи елемент је такође 3.

Дакле, вратимо се 6.

Пример 2:

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

Субарраи [3,3,3], са својим највећим елементом 3. Први елемент је 3 и последњи елемент је такође 3.
Субарраи [3,3,3], са својим највећим елементом 3. Први елемент је 3 и последњи елемент је такође 3.
Субарраи [3,3,3], са својим највећим елементом 3. Први елемент је 3 и последњи елемент је такође 3.
Субарраи [3,3,3], са својим највећим елементом 3. Први елемент је 3 и последњи елемент је такође 3.
Субарраи [3,3,3], са својим највећим елементом 3. Први елемент је 3 и последњи елемент је такође 3.
Субарраи [3,3,3], са својим највећим елементом 3. Први елемент је 3 и последњи елемент је такође 3.

Дакле, вратимо се 6.

Пример 3:

Улаз: nums = [1]
Излаз: 1
Објашњење:
Постоји само један субаррај који је [1], са својим највећим елементом 1. Први елемент је 1, а последњи елемент је такође 1.
Дакле, вратимо се 1.

ОГРАНИЧЕЊА:

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

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

Пример 1:

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

подниз [1,4,3,3,2], са највећим елементом 1. Први елемент је 1 и последњи елемент је такође 1.
подниз [1,4,3,3,2], са највећим елементом 4. Први елемент је 4 и последњи елемент је такође 4.
подниз [1,4,3,3,2], са највећим елементом 3. Први елемент је 3 и последњи елемент је такође 3.
подниз [1,4,3,3,2], са највећим елементом 3. Први елемент је 3 и последњи елемент је такође 3.
подниз [1,4,3,3,2], са највећим елементом 2. Први елемент је 2 и последњи елемент је такође 2.
подниз [1,4,3,3,2], са највећим елементом 3. Први елемент је 3 и последњи елемент је такође 3.

Дакле, враћамо 6.

Пример 2:

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

подниз [3,3,3], са највећим елементом 3. Први елемент је 3 и последњи елемент је такође 3.
подниз [3,3,3], са највећим елементом 3. Први елемент је 3 и последњи елемент је такође 3.
подниз [3,3,3], са највећим елементом 3. Први елемент је 3 и последњи елемент је такође 3.
подниз [3,3,3], са највећим елементом 3. Први елемент је 3 и последњи елемент је такође 3.
подниз [3,3,3], са највећим елементом 3. Први елемент је 3 и последњи елемент је такође 3.
подниз [3,3,3], са највећим елементом 3. Први елемент је 3 и последњи елемент је такође 3.

Дакле, враћамо 6.

Пример 3:

Улаз: nums = [1]
Излаз: 1
Објашњење:
Постоји један подниз nums који је [1], са највећим елементом 1. Први елемент је 1 и последњи елемент је такође 1.
Дакле, враћамо 1.

Ограничења:

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


Дате вам је низ word. Слово се назива посебним ако се појављује и малим и великим словима у word.
Врати број посебних слова у word.

Пример 1:

Улаз: word = "aaAbcBC"
Излаз: 3
Објашњење:
Посебни знакови у речи су 'a', 'b' и 'c'.

Пример 2:

Унос: word = "abc"
Излаз: 0
Објашњење:
Ниједан знак у речи се не појављује великим словима.

Пример 3:

Улаз: word = "abBCab"
Излаз: 1
Објашњење:
Једини специјални знак у речи је 'б'.

Ограничења:

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

Дате вам је низа слова. Слово се назива посебним ако се појављује и малим и великим словима у речи.
Врати број посебних слова у речи.

Пример 1:

Улаз: word = "aaAbcBC"
Излаз: 3
Објашњење:
Посебни знакови у речи су 'a', 'b' и 'c'.

Пример 2:

Унос: word = "abc"
Излаз: 0
Објашњење:
Ниједан знак у речи се не појављује великим словима.

Пример 3:

Улаз: word = "abBCab"
Излаз: 1
Објашњење:
Једини специјални знак у речи је 'b'.

Ограничења:

1 <= word.length <= 50
реч се састоји само од малих и великих енглеских слова.

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

Пример 1:

Улаз: word = "aaAbcBC"
Излаз: 3
Објашњење:
Посебни знакови у word су 'a', 'b' и 'c'.

Пример 2:

Улаз: word = "abc"
Излаз: 0
Објашњење:
Никакав знак у речи не појављује се великим словима.

Пример 3:

Улаз: word = "abBCab"
Излаз: 1
Објашњење:
Једини посебан лик у Ворд-у је 'b'.

ОГРАНИЧЕЊА:

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


Дати су два низа исте дужине, nums1 и nums2.
Сваком елементу у nums1 је додат (или одузет у случају негативног броја) цео број, који је представљен променљивом x.
Као резултат, nums1 постаје једнак nums2. Два низа се сматрају једнакима када садрже исте целе бројеве са истим учесталостима.
Вратите цео број x.

Пример 1:

Улаз: nums1 = [2,6,4], nums2 = [9,7,5]
Излаз: 3
Објашњење:
Цео број додат сваком елементу nums1 је 3.

Пример 2:

Улаз: nums1 = [10], nums2 = [5]
Излаз: -5
Објашњење:
Цео број додат сваком елементу nums1 је -5.

Пример 3:

Улаз: nums1 = [1,1,1,1], nums2 = [1,1,1,1]
Излаз: 0
Објашњење:
Цео број додат сваком елементу nums1 је 0.

Ограничења:

1 <= nums1.length == nums2.length <= 100
0 <= nums1[i], nums2[i] <= 1000
Тест случаји су генерисани на такав начин да постоји цео број x, тако да nums1 може постати једнак nums2 додавањем x сваком елементу nums1.

Дат вам је два низа исте дужине, nums1 и nums2.
Сваком елементу у низу nums1 је повећан (или смањен у случају негативног броја) цео број, представљен променљивом x.
Као резултат, низ nums1 постаје једнак низу nums2. Два низа се сматрају једнакима ако садрже исте целе бројеве са истим учесталостима.
Вратите цео број x.

Пример 1:

Улаз: nums1 = [2,6,4], nums2 = [9,7,5]
Излаз: 3
Објашњење:
Цео број додат сваком елементу nums1 је 3.

Пример 2:

Улаз: nums1 = [10], nums2 = [5]
Излаз: -5
Објашњење:
Цео број додат сваком елементу nums1 је -5.

Пример 3:

Улаз: nums1 = [1,1,1,1], nums2 = [1,1,1,1]
Излаз: 0
Објашњење:
Цео број додат сваком елементу nums1 је 0.

Ограничења:

1 <= nums1.length == nums2.length <= 100
0 <= nums1[i], nums2[i] <= 1000
Тест примери се генеришу на начин да постоји цео број x таквим да nums1 може постати једнак nums2 додавањем x сваком елементу nums1.

Дате су вам два низа једнаке дужине, nums1 и nums2.
Сваки елемент у нумс1 је повећан (или смањен у случају негативног) за цео број, представљен променљивом x.
Као резултат, нумс1 постаје једнак nums2. Два низа се сматрају једнакима када садрже исте целе бројеве са истим фреквенцијама.
Врати цео број x.

Пример 1:

Улаз: nums1 = [2,6,4], nums2 = [9,7,5]
Излаз: 3
Објашњење:
Цео број додат сваком елементу nums1 је 3.

Пример 2:

Улаз: nums1 = [10], nums2 = [5]
Излаз: -5
Објашњење:
Цео број додат сваком елементу nums1 је -5.

Пример 3:

Улаз: nums1 = [1,1,1,1], nums2 = [1,1,1,1]
Излаз: 0
Објашњење:
Цео број додат сваком елементу nums1 је 0.

Ограничења:

1 <= nums1.length == nums2.length <= 100
0 <= nums1[i], nums2[i] <= 1000
Тест случајеви се генеришу на начин да постоји цео број x такав да nums1 може постати једнак броју nums2 додавањем x сваком елементу nums1.


Дате су вам два цела броја n и x. Потребно је конструисати низ позитивних целих бројева nums дужине n, где за сваки 0 <= i < n - 1, важи да је nums[i + 1] већи од nums[i], и резултат битовске операције И између свих елемената низа nums је x. Вратите минималну могућу вредност nums[n - 1].

Пример 1:

Улаз: n = 3, x = 4
Излаз: 6
Објашњење:
nums може бити [4,5,6] и његов последњи елемент је 6.

Пример 2:

Улаз: n = 2, x = 7
Излаз: 15
Објашњење:
nums може бити [7,15] и његов последњи елемент је 15.

Ограничења:

1 <= n, x <= 10^8

Дати су вам два цела броја n и x. Треба да конструктивно направите низ позитивних целих бројева nums величине n, где за сваки 0 <= i < n - 1, важи да је nums[i + 1] веће од nums[i], и да резултат битовске операције AND између свих елемената низа nums буде једнак x. Вратите минималну могућу вредност nums[n - 1].

Пример 1:

Улаз: n = 3, x = 4
Излаз: 6
Објашњење:
nums може бити [4,5,6] и његов последњи елемент је 6.

Пример 2:

Улаз: n = 2, x = 7
Излаз: 15
Објашњење:
nums може бити [7,15] и његов последњи елемент је 15.

Ограничења:

1 <= n, x <= 10^8

Дата су вам два цела броја n и x. Морате да конструишете низ позитивних целих бројева нумс величине n где је за свако 0 <= i < n - 1, nums[i + 1] већи од nums[i], а резултат операције И између свих елемената од бројева је х.
Врати минималну могућу вредност nums[n - 1].

Пример 1:

Улаз: n = 3, x = 4
Излаз: 6
Објашњење:
бројеви могу бити [4,5,6] и његов последњи елемент је 6.

Пример 2:

Улаз: n = 2, x = 7
Излаз: 15
Објашњење:
бројеви могу бити [7,15] и његов последњи елемент је 15.

Ограничења:

1 <= n, x <= 10^8


Дат вам је низ целих бројева nums. Уникатни низ низа nums је сортирани низ који садржи број различитих елемената свих подниза низа nums. Другим речима, то је сортирани низ који се састоји од distinct(nums[i..j]), за све 0 <= i <= j < nums.length.
Тиме distinct(nums[i..j]) представља број различитих елемената у поднизу који почиње на индексу i и завршава се на индексу j.
Вратите медијану уникатног низа низа nums.
Напомена: медијана низа је дефинисана као средњи елемент низа када је сортиран у растућем редоследу. Ако постоје два могућа избора за медијану, узима се мањи од та два вредности.

Пример 1:

Input: nums = [1,2,3]
Output: 1
Објашњење:
Јединствени низ од nums је [distinct(nums[0..0]), distinct(nums[1..1]), distinct(nums[2..2]), distinct(nums[0..1]), distinct(nums[1..2]), distinct(nums[0..2])] што је једнако [1, 1, 1, 2, 2, 3]. Јединствени низ има медијану од 1. Стога, одговор је 1.

Пример 2:

Input: nums = [3,4,3,4,5]
Output: 2
Објашњење:
Јединствени низ од nums је [1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3]. Јединствени низ има медијану од 2. Стога, одговор је 2.

Пример 3:

Input: nums = [4,3,5,4]
Output: 2
Објашњење:
Јединствени низ од nums је [1, 1, 1, 1, 2, 2, 2, 3, 3, 3]. Јединствени низ има медијану од 2. Стога, одговор је 2.

Ограничења:

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

Дат је низ целих бројева nums. Јединствени низ од nums је сортирани низ који садржи број различитих елемената свих подниза од nums. Другим речима, то је сортирани низ који се састоји од distinct(nums[i..j]), за све 0 <= i <= j < nums.length.
Овде, distinct(nums[i..j]) означава број различитих елемената у поднизу који почиње на индексу i и завршава на индексу j.
Вратите медијану јединственог низа nums.
Имајте на уму да је медијана низа дефинисана као средњи елемент низа када је сортиран у не-опадајућем редоследу. Ако постоје два избора за медијану, узима се мања од две вредности.

Пример 1:

Input: nums = [1,2,3]
Output: 1
Објашњење:
Јединствени низ од nums је [distinct(nums[0..0]), distinct(nums[1..1]), distinct(nums[2..2]), distinct(nums[0..1]), distinct(nums[1..2]), distinct(nums[0..2])] што је једнако [1, 1, 1, 2, 2, 3]. Јединствени низ има медијану од 1. Стога, одговор је 1.

Пример 2:

Input: nums = [3,4,3,4,5]
Output: 2
Објашњење:
Јединствени низ од nums је [1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3]. Јединствени низ има медијану од 2. Стога, одговор је 2.

Пример 3:

Input: nums = [4,3,5,4]
Output: 2
Објашњење:
Јединствени низ од nums је [1, 1, 1, 1, 2, 2, 2, 3, 3, 3]. Јединствени низ има медијану од 2. Стога, одговор је 2.

Ограничења:

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

Дат је низ целих бројева nums. Јединствени низ од nums је сортирани низ који садржи број различитих елемената свих подниза од nums. Другим речима, то је сортирани низ који се састоји од distinct(nums[i..j]), за све 0 <= i <= j < nums.length.
Овде, distinct(nums[i..j]) означава број различитих елемената у поднизу који почиње на индексу i и завршава на индексу j.
Вратите медијану јединственог низа nums.
Запазите да је медијана низа дефинисана као средњи елемент низа када је сортиран у не-опадајућем редоследу. Ако постоје два избора за медијану, узима се мања од две вредности.

Пример 1:

Улаз: nums = [1,2,3]
Излаз: 1
Објашњење:
Јединствени низ од nums је [distinct(nums[0..0]), distinct(nums[1..1]), distinct(nums[2..2]), distinct(nums[0..1]), distinct(nums[1..2]), distinct(nums[0..2])] што је једнако [1, 1, 1, 2, 2, 3]. Јединствени низ има медијану од 1. Дакле, одговор је 1.

Пример 2:

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

Пример 3:

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

Ограничења:

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


Реч се сматра ваљаном ако:

Садржи најмање 3 знака.
Садржи само цифре (0-9) и енглеска слова (велика и мала).
Садржи барем један самогласник.
Садржи барем један сугласник.

Дат вам је стринг word.
Вратите true ако је реч ваљна, иначе, вратите false.
Напомене:

'a', 'e', 'i', 'o', 'u' и њихова велика слова су самогласници.
Сугласник је енглеско слово које није самогласник.

Пример 1:

Улаз: word = "234Adas"
Излаз: true
Објашњење:
Ова реч испуњава услове.

Пример 2:

Улаз: word = "b3"
Излаз: false
Објашњење:
Дужина ове речи је мања од 3 и нема самогласник.

Пример 3:

Улаз: word = "a3$e"

Излаз: false
Објашњење:
Ова реч садржи карактер '$' и нема сугласник.

Ограничења:

1 <= word.length <= 20
word се састоји од енглеских великих и малих слова, цифара, '@', '#' и '$'.

Реч се сматра важећом ако:

Садржи најмање 3 карактера.
Садржи само цифре (0-9) и енглеска слова (велика и мала).
Укључује најмање један самогласник.
Укључује најмање један сугласник.

Добијате стринг реч.
Врати тачно ако је реч валидна, у супротном, врати лаж.
Белешке:

'а ', 'е', 'i', 'о', 'у', и њихова велика слова су самогласници.
Сугласник је енглеско слово које није самогласник.

Пример 1:

Улаз : word = "234Adas"
Излаз : true
Објаљњење:
Ова реч задовољава услове.

Пример 2:

Улаз : word = "b3"
Излаз : false
Објаљњење:
Дужина ове речи је мања од 3, и нема самогласник.

Пример 3:

Улаз : word = "a3$e"
Излаз : false
Објаљњење:
Ова реч садржи знак '$' и нема сугласник.

Ограничења:

1 <= word.length <= 20
реч се састоји од енглеских великих и малих слова, цифара, '@', '#' и '$'.

Реч се сматра валидном ако:

- Садржи најмање 3 карактера.
- Садржи само цифре (0-9) и енглеска слова (велика и мала).
- Укључује бар један самогласник.
- Укључује бар један сугласник.

Дат вам је стринг word.
Вратите true ако је реч валидна, у супротном вратите false.
Напомене:

'a', 'e', 'i', 'o', 'u' и њихова велика слова су самогласници.
Сугласник је енглеско слово које није самогласник.

Пример 1:

Input: word = "234Adas"
Output: true
Објашњење:
Ова реч испуњава услове.

Пример 2:

Input: word = "b3"
Output: false
Објашњење:
Дужина ове речи је мања од 3 и нема самогласник.

Пример 3:

Input: word = "a3$e"
Output: false
Објашњење:
Ова реч садржи карактер '$' и нема сугласник.

Ограничења:

1 <= word.length <= 20
word се састоји од енглеских великих и малих слова, цифара, '@', '#' и '$'.


Дат је стринг word дужине n и цео број k тако да k дели n.
У једној операцији, можете изабрати било која два индекса i и j, која су дељива са k, а затим заменити подниз дужине k који почиње на i са поднизом дужине k који почиње на j. То јест, замените подниз word[i..i + k - 1] са поднизом word[j..j + k - 1].
Вратите минималан број операција потребан да word постане k-периодичан.
Кажемо да је word k-периодичан ако постоји неки стринг s дужине k такав да се word може добити конкатенацијом s произвољан број пута. На пример, ако је word == "ababab", онда је word 2-периодичан за s = "ab".

Пример 1:

Улаз: word = "leetcodeleet", k = 4
Излаз: 1
Објашњење:
Можемо добити 4-периодичан стринг тако што ћемо изабрати i = 4 и j = 0. Након ове операције, word постаје једнако "leetleetleet".

Пример 2:

Улаз: word = "leetcoleet", k = 2
Излаз: 3
Објашњење:
Можемо добити 2-периодичан стринг применом операција у доњој табели.

i
j
word

0
2
etetcoleet

4
0
etetetleet

6
0
etetetetet

Ограничења:

1 <= n == word.length <= 10^5
1 <= k <= word.length
k дели word.length.
word се састоји само од малих енглеских слова.

Дат је стринг word дужине n и цео број k тако да k дели n.
У једној операцији, можете изабрати било која два индекса i и j, која су дељива са k, а затим заменити подниз дужине k који почиње на i са поднизом дужине k који почиње на j. То јест, замените подниз word[i..i + k - 1] са поднизом word[j..j + k - 1].
Вратите минималан број операција потребан да word постане k-периодичан.
Кажемо да је word k-периодичан ако постоји неки стринг s дужине k такав да се word може добити конкатенацијом s произвољан број пута. На пример, ако је word == "ababab", онда је word 2-периодичан за s = "ab".

Пример 1:

Унос: word = "leetcodeleet", k = 4
Излаз: 1
Објашњење:
Можемо добити 4-периодичан стринг тако што ћемо изабрати i = 4 и j = 0. Након ове операције, word постаје једнако "leetleetleet".

Пример 2:

Унос: word = "leetcoleet", k = 2
Излаз: 3
Објашњење:
Можемо добити 2-периодичан стринг применом операција у доњој табели.

i
j
word

0
2
etetcoleet

4
0
etetetleet

6
0
etetetetet

Ограничења:

1 <= n == word.length <= 10^5
1 <= k <= word.length
k дели word.length.
word се састоји само од малих енглеских слова.


Дата је ниска s, за који се зна да је конкатенација анаграма неке ниске t.
Вратите минималну могућу дужину ниске t.
Анагрaм се формира реорганизацијом слова ниске. На пример, "aab", "aba", и "baa" су анаграми од "aab".

Пример 1:

Улаз: s = "abba"
Излаз: 2
Објашњење:
Једна могућа ниска t може бити "ba".

Пример 2:

Улаз: s = "cdef"
Излаз: 4
Објашњење:
Једна могућа ниска t може бити "cdef", приметите да t може бити једнако s.

Ограничења:

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

Датa вам је ниска s, за коју је познато да је конкатенација анаграма неке ниске t.
Вратите минималну могућу дужину ниске t.
Анаgram се формира премештањем слова у некој ниски. На пример, "aab", "aba" и "baa" су анаграми ниске "aab".

Пример 1:

Улаз: s = "abba"
Излаз: 2
Објашњење:
Један могући низ t може бити "ba".

Пример 2:

Улаз: s = "cdef"
Излаз: 4
Објашњење:
Један могући низ t може бити "cdef", приметите да t може бити једнако s.

Ограничења:

1 <= s.length <= 10^5
s садржи само мала слова енглеске азбуке.

Дајете вам низ с, за које се зна да је повезивање анаграма неке низа t.
Вратите минималну могућу дужину низа t.
Анаграм се формира преуређивањем слова низа. На пример,  "aab", "aba", и "baa" су анаграми од "aab".
Пример 1:

Улаз: s = "abba"
Излаз: 2
Објашњење:
Један могући низ t могао би бити "ba".

Пример 2:

Улаз: s = "cdef"
Излаз: 4
Објашњење:
Један могући низ t могао бити "cdef", приметите да је t може бити једнак s.

Ограничења:

1 <= s.length <= 10^5
s садржи само мала слова енглеске абецеде.


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

Изаберите индекс i из низа nums и повећајте nums[i] за 1 уз трошак cost1.
Изаберите два различита индекса i и j из низа nums и повећајте nums[i] и nums[j] за 1 уз трошак cost2.
Вратите минимални трошак потребан да сви елементи у низу буду једнаки. Пошто одговор може бити веома велики, вратите га по модулу 10^9 + 7.

Пример 1:

```
Input: nums = [4,1], cost1 = 5, cost2 = 2
Output: 15
```
Објашњење:
Следеће операције могу се извршити да би вредности биле једнаке:

Повећајте `nums[1]` за 1 уз трошак 5. `nums` постаје `[4,2]`.
Повећајте `nums[1]` за 1 уз трошак 5. `nums` постаје `[4,3]`.
Повећајте `nums[1]` за 1 уз трошак 5. `nums` постаје `[4,4]`.

Укупни трошак је 15.

Пример 2:

```
Input: nums = [2,3,3,3,5], cost1 = 2, cost2 = 1
Output: 6
```
Објашњење:
Следеће операције могу се извршити да би вредности биле једнаке:

Повећајте `nums[0]` и `nums[1]` за 1 уз трошак 1. `nums` постаје `[3,4,3,3,5]`.
Повећајте `nums[0]` и `nums[2]` за 1 уз трошак 1. `nums` постаје `[4,4,4,3,5]`.
Повећајте `nums[0]` и `nums[3]` за 1 уз трошак 1. `nums` постаје `[5,4,4,4,5]`.
Повећајте `nums[1]` и `nums[2]` за 1 уз трошак 1. `nums` постаје `[5,5,5,4,5]`.
Повећајте `nums[3]` за 1 уз трошак 2. `nums` постаје `[5,5,5,5,5]`.

Укупни трошак је 6.

Пример 3:

```
Input: nums = [3,5,3], cost1 = 1, cost2 = 3
Output: 4
```
Објашњење:
Следеће операције могу се извршити да би вредности биле једнаке:

Повећајте `nums[0]` за 1 уз трошак 1. `nums` постаје `[4,5,3]`.
Повећајте `nums[0]` за 1 уз трошак 1. `nums` постаје `[5,5,3]`.
Повећајте `nums[2]` за 1 уз трошак 1. `nums` постаје `[5,5,4]`.
Повећајте `nums[2]` за 1 уз трошак 1. `nums` постаје `[5,5,5]`.

Укупни трошак је 4.

Ограничења:

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

Дат је низ целих бројева `nums` и два цела броја `cost1` и `cost2`. Дозвољено је извршити било коју од следећих операција било који број пута:

Изаберите индекс `i` из `nums` и повећајте `nums[i]` за 1 уз трошак `cost1`.
Изаберите два различита индекса `i`, `j`, из `nums` и повећајте `nums[i]` и `nums[j]` за 1 уз трошак `cost2`.

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

Пример 1:

```
Input: nums = [4,1], cost1 = 5, cost2 = 2
Output: 15
```
Објашњење:
Следеће операције могу се извршити да би вредности биле једнаке:

Повећајте `nums[1]` за 1 уз трошак 5. `nums` постаје `[4,2]`.
Повећајте `nums[1]` за 1 уз трошак 5. `nums` постаје `[4,3]`.
Повећајте `nums[1]` за 1 уз трошак 5. `nums` постаје `[4,4]`.

Укупни трошак је 15.

Пример 2:

```
Input: nums = [2,3,3,3,5], cost1 = 2, cost2 = 1
Output: 6
```
Објашњење:
Следеће операције могу се извршити да би вредности биле једнаке:

Повећајте `nums[0]` и `nums[1]` за 1 уз трошак 1. `nums` постаје `[3,4,3,3,5]`.
Повећајте `nums[0]` и `nums[2]` за 1 уз трошак 1. `nums` постаје `[4,4,4,3,5]`.
Повећајте `nums[0]` и `nums[3]` за 1 уз трошак 1. `nums` постаје `[5,4,4,4,5]`.
Повећајте `nums[1]` и `nums[2]` за 1 уз трошак 1. `nums` постаје `[5,5,5,4,5]`.
Повећајте `nums[3]` за 1 уз трошак 2. `nums` постаје `[5,5,5,5,5]`.

Укупни трошак је 6.

Пример 3:

```
Input: nums = [3,5,3], cost1 = 1, cost2 = 3
Output: 4
```
Објашњење:
Следеће операције могу се извршити да би вредности биле једнаке:

Повећајте `nums[0]` за 1 уз трошак 1. `nums` постаје `[4,5,3]`.
Повећајте `nums[0]` за 1 уз трошак 1. `nums` постаје `[5,5,3]`.
Повећајте `nums[2]` за 1 уз трошак 1. `nums` постаје `[5,5,4]`.
Повећајте `nums[2]` за 1 уз трошак 1. `nums` постаје `[5,5,5]`.

Укупни трошак је 4.

Ограничења:

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

Дат је низ целих бројева nums и два цела броја cost1 и cost2. Дозвољено је извршити било коју од следећих операција било који број пута:

Изаберите индекс i из nums и повећајте nums[i] за 1 уз трошак cost1.
Изаберите два различита индекса i, j, из nums и повећајте nums[i] и nums[j] за 1 уз трошак cost2.

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

Пример 1:

Input: nums = [4,1], cost1 = 5, cost2 = 2
Output: 15

Објашњење:
Следеће операције могу се извршити да би вредности биле једнаке:

Повећајте nums[1] за 1 уз трошак 5. nums постаје [4,2].
Повећајте nums[1] за 1 уз трошак 5. nums постаје [4,3].
Повећајте nums[1] за 1 уз трошак 5. nums постаје [4,4].

Укупни трошак је 15.

Пример 2:

Улаз: nums = [2,3,3,3,5], cost1 = 2, cost2 = 1
Излаз: 6

Објашњење:
Следеће операције могу се извршити да би вредности биле једнаке:

Повећајте nums[0] и nums[1] за 1 уз трошак 1. nums постаје [3,4,3,3,5].
Повећајте nums[0] и nums[2] за 1 уз трошак 1. nums постаје [4,4,4,3,5].
Повећајте nums[0] и nums[3] за 1 уз трошак 1. nums постаје [5,4,4,4,5].
Повећајте nums[1] и nums[2] за 1 уз трошак 1. nums постаје [5,5,5,4,5].
Повећајте nums[3] за 1 уз трошак 2. `nums` постаје `[5,5,5,5,5]`.

Укупни трошак је 6.

Пример 3:

Улаз: nums = [3,5,3], cost1 = 1, cost2 = 3
Излаз: 4

Објашњење:
Следеће операције могу се извршити да би вредности биле једнаке:

Повећајте nums[0] за 1 уз трошак од 1. nums постаје [4, 5, 3].
Повећајте nums[0] за 1 уз трошак од 1. nums постаје [5, 5, 3].
Повећајте nums[2] за 1 уз трошак од 1. nums постаје [5, 5, 4].
Повећајте nums[2] за 1 уз трошак од 1. nums постаје [5, 5, 5].

Укупни трошак је 4.

Ограничења:

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


Дат вам је 2D матрица grid величине 3 x 3 која се састоји само од знакова 'B' и 'W'. Знак 'W' представља белу боју, а знак 'B' представља црну боју.
Ваш задатак је да промените боју највише једне ћелије тако да матрица има квадрат 2 x 2 где су све ћелије исте боје.
Вратите true ако је могуће створити квадрат 2 x 2 исте боје, иначе вратите false.

Пример 1:

Улаз: grid = [["B","W","B"],["B","W","W"],["B","W","B"]]
Излаз: true
Објашњење:
Може се урадити променом боје grid[0][2].

Пример 2:

Улаз: grid = [["B","W","B"],["W","B","W"],["B","W","B"]]
Излаз: false
Објашњење:
Не може се урадити променом највише једне ћелије.

Пример 3:

Улаз: grid = [["B","W","B"],["B","W","W"],["B","W","W"]]
Излаз: true
Објашњење:
Матрица већ садржи квадрат 2 x 2 исте боје.

Ограничења:

grid.length == 3
grid[i].length == 3
grid[i][j] је или 'W' или 'B'.

Добили сте 2D матричну мрежу величине 3 x 3 која се састоји само од знакова 'B' и 'W'. Карактер "W" представља белу боју, а карактер "B" представља црну боју.
Ваш задатак је да промените боју највише једне ћелије да матрица има 2 x 2 квадрат у којем су све ћелије исте боје.
Вратите true ако је могуће креирати 2 к 2 квадрат исте боје, у супротном, Вратите false.

Пример 1:

Улаз: grid = [["B","W","B"],["B","W","W"],["B","W","B"]]
Излаз: true
Објашњење:
Може се то постићи променом боје мреже [0][2].

Пример 2:

Улаз: grid = [["B","W","B"],["W","B","W"],["B","W","B"]]
Излаз: false
Објашњење:
Не може се то променити у већини једне ћелије.

Пример 3:

Улаз: grid = [["B","W","B"],["B","W","W"],["B","W","W"]]
Излаз: true
Објашњење:
Грид већ садржи 2 к 2 квадрат исте боје.

Ограничења:

grid.length == 3
grid[i].length == 3
grid[i][j] је или 'W' или 'B'.

Датa вам је 2D матрица grid величине 3 x 3 која се састоји само од карактера 'B' и 'W'. Карактер 'W' представља белу боју, а карактер 'B' представља црну боју.
Ваш задатак је да промените боју највише једне ћелије тако да матрица има квадрат 2 x 2 где су све ћелије исте боје.
Вратите true ако је могуће направити квадрат 2 x 2 исте боје, у супротном вратите false.

Пример 1:

Улаз: grid = [["B","W","B"],["B","W","W"],["B","W","B"]]
Излаз: true
Објашњење:
Може се урадити променом боје grid[0][2].

Пример 2:

Улаз: grid = [["B","W","B"],["W","B","W"],["B","W","B"]]
Излаз: false
Објашњење:
Не може се урадити променом највише једне ћелије.

Пример 3:

Улаз: grid = [["B","W","B"],["B","W","W"],["B","W","W"]]
Излаз: true
Објашњење:
Матрица већ садржи квадрат 2 x 2 исте боје.

Ограничења:

grid.length == 3
grid[i].length == 3
grid[i][j] је или 'W' или 'B'.


Dati ste 2D booleansku matricu grid.
Vratite ceo broj koji predstavlja broj pravih trouglova koji se mogu formirati od 3 elementa matrice grid, tako da svi imaju vrednost 1.
Napomena:

Kolekcija od 3 elementa matrice grid predstavlja pravi trougao ako se jedan od elemenata nalazi u istom redu sa drugim elementom i u istoj koloni sa trećim elementom. Tri elementa ne moraju biti neposredno jedan pored drugog.

Primer 1:

0
1
0

0
1
1

0
1
0

0
1
0

0
1
1

0
1
0

Улаз: grid = [[0,1,0],[0,1,1],[0,1,0]]
Излаз: 2
Објашњење:
Постоје два права троугла.

Пример 2:

1
0
0
0

0
1
0
1

1
0
0
0

Улаз: grid = [[1,0,0,0],[0,1,0,1],[1,0,0,0]]
Излаз: 0
Објашњење:
Нема правих троуглова.

Пример 3:

1
0
1

1
0
0

1
0
0

1
0
1

1
0
0

1
0
0

Улаз: grid = [[1,0,1],[1,0,0],[1,0,0]]
Излаз: 2
Објашњење:
Постоје два права троугла.

Ограничења:

1 <= grid.length <= 1000
1 <= grid[i].length <= 1000
0 <= grid[i][j] <= 1

Дат вам је 2D буловска матрица grid.
Вратите цео број који представља број правих троуглова који се могу направити са 3 елемента из grid тако да су сви они једнаки 1.

Напомена:

Колекција 3 елемента из grid је прави троугао ако је један од њих у истом реду са другим елементом и у истом стубцу са трећим елементом. Та 3 елемента не морају бити поред један другог.

Пример 1:

0
1
0

0
1
1

0
1
0

0
1
0

0
1
1

0
1
0

Улаз: grid = [[0,1,0],[0,1,1],[0,1,0]]
Излаз: 2
Објашњење:
Постоје два права троугла.

Пример 2:

1
0
0
0

0
1
0
1

1
0
0
0

Улаз: grid = [[1,0,0,0],[0,1,0,1],[1,0,0,0]]
Излаз: 0
Објашњење:
Нема правих троуглова.

Пример 3:

1
0
1

1
0
0

1
0
0

1
0
1

1
0
0

1
0
0

Улаз: grid = [[1,0,1],[1,0,0],[1,0,0]]
Излаз: 2
Објашњење:
Постоје два права троугла.

Ограничења:

1 <= grid.length <= 1000
1 <= grid[i].length <= 1000
0 <= grid[i][j] <= 1

Дат вам је 2D буловски матрица grid.
Вратите целобројни број који представља број правоуглих троуглова који се могу направити са 3 елемента из grid-а тако да сви имају вредност 1.
Напомена:

Колекција од 3 елемента из grid-а је правоугли троугао ако је један од њих на истом реду са другим елементом и на истој колони са трећим елементом. Три елемента не морају бити поред један другог.

Пример 1:

0
1
0

0
1
1

0
1
0

0
1
0

0
1
1

0
1
0

Улаз: grid = [[0,1,0],[0,1,1],[0,1,0]]
Излаз: 2
Објашњење:
Постоје два права троугла.

Пример 2:

1
0
0
0

0
1
0
1

1
0
0
0

Улаз: grid = [[1,0,0,0],[0,1,0,1],[1,0,0,0]]
Излаз: 0
Објашњење:
Нема правих троуглова.

Пример 3:

1
0
1

1
0
0

1
0
0

1
0
1

1
0
0

1
0
0

Улаз: grid = [[1,0,1],[1,0,0],[1,0,0]]
Излаз: 2
Објашњење:
Постоје два права троугла.

Ограничења:

1 <= grid.length <= 1000
1 <= grid[i].length <= 1000
0 <= grid[i][j] <= 1


Data su vam 3 pozitivna broja: zero, one i limit.
Binarni niz arr se naziva stabilnim ako:

- Broj pojavljivanja 0 u nizu arr je tačno zero.
- Broj pojavljivanja 1 u nizu arr je tačno one.
- Svaki podniz niza arr dužine veće od limit mora sadržati i 0 i 1.

Vratite ukupan broj stabilnih binarnih nizova.
Pošto odgovor može biti vrlo veliki, vratite ga modulo 10^9 + 7.

Primer 1:

Ulaz: zero = 1, one = 1, limit = 2
Izlaz: 2
Objašnjenje:
Dva moguća stabilna binarna niza su [1,0] i [0,1], jer oba niza imaju po jednu cifru 0 i po jednu cifru 1, i nijedan podniz nema dužinu veću od 2.

Primer 2:

Ulaz: zero = 1, one = 2, limit = 1
Izlaz: 1
Objašnjenje:
Jedini mogući stabilni binarni niz je [1,0,1].
Primetite da binarni nizovi [1,1,0] i [0,1,1] imaju podnizove dužine 2 sa identičnim elementima, te stoga nisu stabilni.

Primer 3:

Ulaz: zero = 3, one = 3, limit = 2
Izlaz: 14
Objašnjenje:
Svi mogući stabilni binarni nizovi su [0,0,1,0,1,1], [0,0,1,1,0,1], [0,1,0,0,1,1], [0,1,0,1,0,1], [0,1,0,1,1,0], [0,1,1,0,0,1], [0,1,1,0,1,0], [1,0,0,1,0,1], [1,0,0,1,1,0], [1,0,1,0,0,1], [1,0,1,0,1,0], [1,0,1,1,0,0], [1,1,0,0,1,0] i [1,1,0,1,0,0].

Ograničenja:

1 <= zero, one, limit <= 200

Dobijate 3 pozitivna cela broja zero, one i limit.
Binarni niz arr se zove stabilan ako:

Broj pojavljivanja 0 u arr je tačno zero.
Broj pojavljivanja 1 u arr je tačno one.
Svaki podniz arr sa veličinom većom od limit mora da sadrži i 0 i 1.

Vratite ukupan broj stabilnih binarnih nizova.
Pošto odgovor može biti veoma velik, vratite ga modulo 10^9 + 7.

Primer 1:

Ulaz: zero = 1, one = 1, limit = 2
Izlaz: 2
Objaљnjenje:
Dva moguća stabilna binarna niza su [1,0] i [0,1], jer oba niza imaju tačno jedan 0 i jedan 1, a nijedan podniz nema dužinu veću od 2.

Primer 2:

Ulaz: zero = 1, one = 2, limit = 1
Izlaz: 1
Objaљnjenje:
Jedini mogući stabilni binarni niz je [1,0,1].
Imajte na umu da binarni nizovi [1,1,0] i [0,1,1] imaju podnizove dužine 2 sa identičnim elementima, dakle, oni nisu stabilni.

Primer 3:

Ulaz: zero = 3, one = 3, limit = 2
Izlaz: 14
Objaљnjenje:
Svi mogući stabilni binarni nizovi su [0,0,1,0,1,1], [0,0,1,1,0,1], [0,1,0,0,1,1], [0,1,0,1,0,1], [0,1,0,1,1,0], [0,1,1,0,0,1], [0,1,1,0,1,0], [1,0,0,1,0,1], [1,0,0,1,1,0], [1,0,1,0,0,1], [1,0,1,0,1,0], [1,0,1,1,0,0], [1,1,0,0,1,0], i [1,1,0,1,0,0].

Ograničenja:

1 <= zero, one, limit <= 200

Дате су вам 3 позитивна цела броја zero, one, and limit.
Бинарни низ арр се назива стабилним ако:

Број појављивања 0 у арр је тачно zero.
Број појављивања 1 у арр је тачно one.
Сваки подниз арр чија је величина већа од ограничења мора да садржи и 0 и 1.

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

Пример 1:

Улаз: zero = 1, one = 1, limit = 2
Излаз: 2
Објашњење:
Два могућа стабилна бинарна низа су [1,0] и [0,1], пошто оба низа имају једну 0 и једну 1, а ниједан подниз нема дужину већу од 2.

Пример 2:

Улаз: zero = 1, one = 2, limit = 1
Излаз: 1
Објашњење:
Једини могући стабилни бинарни низ је [1,0,1].
Имајте на уму да бинарни низови [1,1,0] и [0,1,1] имају поднизови дужине 2 са идентичним елементима, па стога нису стабилни.

Пример 3:

Ulaz: zero = 3, one = 3, limit = 2
Izlaz: 14
Објашњење:
Сви могући стабилни бинарни низови су [0,0,1,0,1,1], [0,0,1,1,0,1], [0,1,0,0,1,1], [0,1,0,1,0,1], [0,1,0,1,1,0], [0,1,1,0,0,1], [0,1,1,0,1,0], [1,0,0,1,0,1], [1,0,0,1,1,0], [1,0,1,0,0,1], [1,0,1,0,1,0], [1,0,1,1,0,0], [1,1,0,0,1,0], and [1,1,0,1,0,0].

Ограничења:

1 <= zero, one, limit <= 200


Добијате два низа s и t тако да се сваки знак јавља највише једном у s и t је пермутација од s.
Пермутациона разлика између s и t је дефинисана као збир апсолутне разлике између индекса појаве сваког карактера у s и индекса појаве истог карактера у t.
Вратите разлику пермутације између s и t.

Пример 1:

Улаз : s = "abc", t = "bac"
излаз : 2
Објаљњење:
За s = "abc" и t = "bac", разлика пермутације с и т једнака је збиру:

Апсолутна разлика између индекса појаве "а" у с и индекса појаве "а" у t.
Апсолутна разлика између индекса појаве "b" у с и индекса појаве "b" у t.
Апсолутна разлика између индекса појаве "c" у с и индекса појаве "c" у t.

То јест, разлика у пермутацији између с и т је једнака | 0 - 1 | + | 2 - 2 | + | 1 - 0 | = 2.

Пример 2:

Улаз : s = "abcde", t = "edbac"
излаз : 12
Објашњење : Разлика у пермутацији између с и т је једнака | 0 - 3 | + | 1 - 2 | + | 2 - 4 | + | 3 - 1 | + | 4 - 0 | = 12.

Ограничења:

1 < = s.length < = 26
Сваки знак се јавља највише једном у s.
t је пермутација од s.
s се састоји само од малих енглеских слова.

Дате су две ниске s и t тако да се сваки карактер појављује највише једном у s, а t је пермутација низа s.
Разлика пермутације између s и t дефинисана је као збир апсолутних разлика између индекса појављивања сваког карактера у s и индекса појављивања истог карактера у t.
Вратите разлику пермутације између s и t.

Пример 1:

Улаз: s = "abc", t = "bac"
Излаз: 2
Објашњење:
За s = "abc" и t = "bac", пермутациона разлика од s и t је једнака збиру:

Апсолутна разлика између индекса јављања "a" у s и индекса јављања "a" у t.
Апсолутна разлика између индекса јављања "b" у s и индекса јављања "b" у t.
Апсолутна разлика између индекса јављања "c" у s и индекса јављања "c" у t.

То јест, пермутациона разлика између s и t је једнака |0 - 1| + |2 - 2| + |1 - 0| = 2.

Пример 2:

Улаз: s = "abcde", t = "edbac"
Излаз: 12
Објашњење: Пермутациона разлика између s и t је једнака |0 - 3| + |1 - 2| + |2 - 4| + |3 - 1| + |4 - 0| = 12.

Ограничења:

1 <= s.length <= 26
Сваки знак се јавља највише једном у s.
t је пермутација од s.
s се састоји само од малих енглеских слова.

Дате су две ниске s и t тако да се сваки знак појављује највише једном у s и t је пермутација од s.
Разлика пермутација између s и t је дефинисана као збир апсолутних разлика између индекса јављања сваког знака у s и индекса јављања истог знака у t.
Вратите разлику пермутацију између s и t.

Пример 1:

Улаз: s = "abc", t = "bac"
Излаз: 2
Објашњење:
За s = "abc" и t = "bac", разлика пермутација од s и t је једнака збиру:

Апсолутна разлика између индекса јављања "a" у s и индекса јављања "a" у t.
Апсолутна разлика између индекса јављања "b" у s и индекса јављања "b" у t.
Апсолутна разлика између индекса јављања "c" у s и индекса јављања "c" у t.

То јест, разлика пермутација између s и t је једнака |0 - 1| + |2 - 2| + |1 - 0| = 2.

Пример 2:

Улаз: s = "abcde", t = "edbac"
Излаз: 12
Објашњење: Разлика пермутација између s и t је једнака |0 - 3| + |1 - 2| + |2 - 4| + |3 - 1| + |4 - 0| = 12.

Ограничења:

1 <= s.length <= 26
Сваки знак се јавља највише једном у s.
t је пермутација од s.
s се састоји само од малих енглеских слова.


У мистичном подземљу, n магова стоји у реду. Сваког мага прати атрибут који вам даје енергију. Неки магови могу вам дати негативну енергију, што значи да вам узимају енергију.
Проклети сте тако да након што апсорбујете енергију од мага i, одмах будете транспортирани на мага (i + k). Овај процес ће се поновити док не достигнете мага где (i + k) не постоји.
Другим речима, изабраћете почетну тачку, а затим ћете се телепортовати са k скокова све док не стигнете до краја низа мага, апсорбујући сву енергију током путовања.
Дат вам је низ енергија и цео број k. Вратите максималну могућу енергију коју можете добити.

Пример 1:

Улаз:  energy = [5,2,-10,-5,1], k = 3
Излаз: 3
Објашњење: Можемо добити укупно 3 енергије почевши од мађионичара 1 апсорбујући 2 + 1 = 3.

Пример 2:

Улаз: energy = [-2,-3,-1], k = 2
Излаз: -1
Објашњење: Можемо добити укупно -1 енергије почевши од мађионичара 2.

Ограничења:

1 <= energy.length <= 10^5
-1000 <= energy[i] <= 1000
1 <= k <= energy.length - 1

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

Пример 1:

Улаз: energy = [5,2,-10,-5,1], k = 3
Излаз: 3
Објашњење: Можемо добити укупну енергију 3 тако што ћемо почети од магичара 1 који апсорбује 2 + 1 = 3.

Пример 2:

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

Ограничења:

1 <= energy.length <= 10^5
-1000 <= energy[i] <= 1000
1 <= k <= energy.length - 1

У мистичном затвору, n магичара стоји у реду. Сваког магичара има атрибут који вам даје енергију. Неки магичари вам могу дати негативну енергију, што значи да вам одузимају енергију.
Проклети сте на такав начин да након апсорбовања енергије од мађионичара i, бићете одмах транспортовани до мађионичара (i + k). Овај процес ће се понављати док не дођете до мађионичара где (i + k) не постоји.
Другим речима, изабраћете почетну тачку и онда се телепортовати са k скокова док не дођете до краја секвенце мађионичара, апсорбујући сву енергију током путовања.
Дат вам је низ energy и цео број k. Вратите максималну могућу енергију коју можете добити.

Пример 1:

Улаз:  energy = [5,2,-10,-5,1], k = 3
Излаз: 3
Објашњење: Можемо добити укупно 3 енергије почевши од мађионичара 1 који апсорбује 2 + 1 = 3.

Пример 2:

Улаз: energy = [-2,-3,-1], k = 2
Излаз: -1
Објашњење: Можемо добити укупно -1 енергије почевши од мађионичара 2.

Ограничења:

1 <= energy.length <= 10^5
-1000 <= energy[i] <= 1000
1 <= k <= energy.length - 1


Низ се сматра посебним ако сваки пар његових суседних елемената садржи два броја различитог паритета.
Дат вам је низ целих бројева нумс. Вратите true ако је нумс посебан низ, у супротном вратите false.

Пример 1:

Улаз: nums = [1]
Излаз: true
Објашњење:
Постоји само један елемент. Дакле, одговор је true.

Пример 2:

Улаз: nums = [2,1,4]
Излаз: true
Објашњење:
Постоје само два пара: (2,1) и (1,4), и оба садрже бројеве са различитим паритетима. Дакле, одговор је true.

Пример 3:

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

Ограничења:

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

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

Дат вам је низ целих бројева nums. Вратите true ако је nums посебан низ, у супротном вратите false.

Пример 1:

Улаз: nums = [1]
Излаз: true
Објашњење:
Постоји само један елемент. Дакле, одговор је true.

Пример 2:

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

Пример 3:

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

Ограничења:

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

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

Дат вам је низ целих бројева nums. Вратите true ако је nums специјалан низ, у супротном, вратите false.

Пример 1:

Улаз: nums = [1]
Излаз: true
Објашњење:
Постоји само један елемент. Дакле, одговор је true.

Пример 2:

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

Пример 3:

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

Ограничења:

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


Дат вам је низ nums који се састоји од позитивних целих бројева где сви бројеви имају исти број цифара.
Разлика између цифара два цела броја је број различитих цифара које се налазе на истој позицији у два броја. Вратите збир разлика између цифара свих парова целих бројева у nums.

Пример 1:

Улаз: nums = [13,23,12]
Излаз: 4
Објашњење:
Имамо следеће:
- Разлика између цифара 13 и 23 је 1.
- Разлика између цифара 13 и 12 је 1.
- Разлика између цифара 23 и 12 је 2.
Дакле, укупан збир разлика између цифара свих парова целих бројева је 1 + 1 + 2 = 4.

Пример 2:

Улаз: nums = [10,10,10,10]
Излаз: 0
Објашњење:
Сви бројеви у низу су исти. Зато је укупан збир разлика између цифара свих парова целих бројева 0.

Ограничења:

2 <= nums.length <= 10^5
1 <= nums[i] < 10^9
Сви бројеви у nums имају исти број цифара.

Дат вам је низ nums који се састоји од позитивних целих бројева, где сви бројеви имају исти број цифара.
Разлика у цифрама између два цела броја је број различитих цифара које се налазе на истој позицији у та два броја.
Вратите збир разлика у цифрама између свих парова бројева у низу nums.

Пример 1:

Улаз: nums = [13,23,12]
Излаз: 4
Објашњење:
Имамо следеће:
- Разлика између цифара 13 и 23 је 1.
- Разлика између цифара 13 и 12 је 1.
- Разлика између цифара 23 и 12 је 2.
Дакле, укупан збир разлика између цифара свих парова целих бројева је 1 + 1 + 2 = 4.

Пример 2:

Улаз: nums = [10,10,10,10]
Излаз: 0
Објашњење:
Сви бројеви у низу су исти. Зато је укупан збир разлика између цифара свих парова целих бројева 0.

Ограничења:

2 <= nums.length <= 10^5
1 <= nums[i] < 10^9
Сви бројеви у nums имају исти број цифара.


Дат вам је ненегативан цели број k. Постоји степениште са бесконачним бројем степеника, где је најнижи степеница нумерисан са 0.
Алиса има цели број скок, са почетном вредношћу 0. Она почиње на степеници 1 и жели да дође до степеника k користећи било који број операција. Ако је она на степеници i, у једној операцији може:

Ићи доле на степеницу i - 1. Ова операција се не може користити узастопно нити на степеници 0.
Ићи горе на степеницу i + 2^jump. Затим, jump постаје jump + 1.

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

Пример 1:

Улаз: k = 0
Излаз: 2
Објашњење:
Постоје 2 могућа начина за достизање степеника 0:

Алиса почиње на степеници 1.

Коришћењем операције првог типа, иде доле 1 степеницу да достигне степеницу 0.

Алиса почиње на степеници 1.

Коришћењем операције првог типа, иде доле 1 степеницу да достигне степеницу 0.
Коришћењем операције другог типа, иде горе 2^0 степеница да достигне степеницу 1.
Коришћењем операције првог типа, иде доле 1 степеницу да достигне степеницу 0.

Пример 2:

Улаз: k = 1
Излаз: 4
Објашњење:
4 могућа начина за достизање степеника 1 су:

Алиса почиње на степеници 1. Алиса је на степеници 1.
Алиса почиње на степеници 1.

Коришћењем операције првог типа, иде доле 1 степеницу да достигне степеницу 0.
Коришћењем операције другог типа, иде горе 2^0 степеница да достигне степеницу 1.

Алиса почиње на степеници 1.

Коришћењем операције другог типа, иде горе 2^0 степеница да достигне степеницу 2.
Коришћењем операције првог типа, иде доле 1 степеницу да достигне степеницу 1.

Алиса почиње на степеници 1.

Коришћењем операције првог типа, иде доле 1 степеницу да достигне степеницу 0.
Коришћењем операције другог типа, иде горе 2^0 степеница да достигне степеницу 1.
Коришћењем операције првог типа, иде доле 1 степеницу да достигне степеницу 0.
Коришћењем операције другог типа, иде горе 2^1 степеница да достигне степеницу 2.
Коришћењем операције првог типа, иде доле 1 степеницу да достигне степеницу 1.

Ограничења:

0 <= k <= 10^9

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

Сићи на степеницу i - 1. Ова операција се не може користити узастопно нити на степеници 0.
Попети се на степеницу i + 2^скок. Затим, скок постаје скок + 1.

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

Пример 1:

Улаз: k = 0
Излаз: 2
Објашњење:
Постоје 2 могућа начина за достизање степеника 0:

Алиса почиње на степеници 1.

Коришћењем операције првог типа, иде доле 1 степеницу да достигне степеницу 0.

Алиса почиње на степеници 1.

Коришћењем операције првог типа, иде доле 1 степеницу да достигне степеницу 0.
Коришћењем операције другог типа, иде горе 2^0 степеница да достигне степеницу 1.
Коришћењем операције првог типа, иде доле 1 степеницу да достигне степеницу 0.

Пример 2:

Улаз: k = 1
Излаз: 4
Објашњење:
4 могућа начина за достизање степеника 1 су:

Алиса почиње на степеници 1. Алиса је на степеници 1.
Алиса почиње на степеници 1.

Коришћењем операције првог типа, иде доле 1 степеницу да достигне степеницу 0.
Коришћењем операције другог типа, иде горе 2^0 степеница да достигне степеницу 1.

Алиса почиње на степеници 1.

Коришћењем операције другог типа, иде горе 2^0 степеница да достигне степеницу 2.
Коришћењем операције првог типа, иде доле 1 степеницу да достигне степеницу 1.

Алиса почиње на степеници 1.

Коришћењем операције првог типа, иде доле 1 степеницу да достигне степеницу 0.
Коришћењем операције другог типа, иде горе 2^0 степеница да достигне степеницу 1.
Коришћењем операције првог типа, иде доле 1 степеницу да достигне степеницу 0.
Коришћењем операције другог типа, иде горе 2^1 степеница да достигне степеницу 2.
Коришћењем операције првог типа, иде доле 1 степеницу да достигне степеницу 1.

Ограничења:

0 <= k <= 10^9


Дата су вам два целобројна низа nums1 и nums2 дужина n и m респективно. Такође, дат је позитиван цео број k.
Пар (i, j) се назива добрим ако је nums1[i] дељив са nums2[j] * k (0 <= i <= n - 1, 0 <= j <= m - 1).
Вратите укупан број добрих парова.

Пример 1:

Улаз: nums1 = [1,3,4], nums2 = [1,3,4], k = 1
Излаз: 5
Објашњење:
5 добрих парова су (0, 0), (1, 0), (1, 1), (2, 0) и (2, 2).
Пример 2:

Улаз: nums1 = [1,2,4,12], nums2 = [2,4], k = 3
Излаз: 2
Објашњење:
2 добра пара су (3, 0) и (3, 1).

Ограничења:

1 <= n, m <= 50
1 <= nums1[i], nums2[j] <= 50
1 <= k <= 50

Дата су вам два целобројна низа nums1 и nums2 дужина n и m респективно. Дат вам је и позитиван цео број k.
Пар (i, j) се назива добрим ако је nums1[i] дељив са nums2[j] * k (0 <= i <= n - 1, 0 <= j <= m - 1).
Вратите укупан број добрих парова.

Пример 1:

Улаз: nums1 = [1,3,4], nums2 = [1,3,4], k = 1
Излаз: 5
Објашњење:
5 добрих парова су (0, 0), (1, 0), (1, 1), (2, 0) и (2, 2).
Пример 2:

Улаз: nums1 = [1,2,4,12], nums2 = [2,4], k = 3
Излаз: 2
Објашњење:
2 добра пара су (3, 0) и (3, 1).

Ограничења:

1 <= n, m <= 50
1 <= nums1[i], nums2[j] <= 50
1 <= k <= 50

Дате су вам 2 низа целих бројева nums1 и nums2 дужине n и m. Такође вам је дат позитиван цео број k.
Пар (i, ј) се назива добрим ако је нумс1[i] дељив са нумс2[ј] * k (0 <= i <= n - 1, 0 <= ј <= m - 1).
Врати укупан број добрих парова.

Пример 1:

Улаз: nums1 = [1,3,4], nums2 = [1,3,4], k = 1
Излаз: 5
Објашњење:
5 добрих парова су (0, 0), (1, 0), (1, 1), (2, 0) и (2, 2).
Пример 2:

Улаз: nums1 = [1,2,4,12], nums2 = [2,4], k = 3
Излаз: 2
Објашњење:
Два добра пара су (3, 0) и (3, 1).

Ограничења:

1 <= n, m <= 50
1 <= nums1[i], nums2[j] <= 50
1 <= к <= 50


Дат је низ word, компресујте га користећи следећи алгоритам:

Почните са празним низом comp. Док word није празан, користите следећу операцију:

Уклоните префикс максималне дужине из word који је састављен од једног карактера c који се понавља највише 9 пута.
Додајте дужину префикса након чега следи c у comp.

Вратите низ comp.

Пример 1:

Улаз: word = "abcde"
Излаз: "1a1b1c1d1e"
Објашњење:
На почетку, comp = "". Примените операцију 5 пута, бирајући "a", "b", "c", "d", и "e" као префикс у свакој операцији.
За сваки префикс, додајте "1" након чега следи тај карактер у comp.

Пример 2:

Улаз: word = "aaaaaaaaaaaaaabb"
Излаз: "9a5a2b"
Објашњење:
На почетку, comp = "". Примените операцију 3 пута, бирајући "aaaaaaaaa", "aaaaa", и "bb" као префикс у свакој операцији.

За префикс "aaaaaaaaa", додајте "9" након чега следи "a" у comp.
За префикс "aaaaa", додајте "5" након чега следи "a" у comp.
За префикс "bb", додајте "2" након чега следи "b" у comp.

Ограничења:

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

Дате стринг реч, компримујте је користећи следећи алгоритам:

Почните са празним низом цомп. Док реч није празна, користите следећу операцију:

Уклоните префикс максималне дужине речи састављен од једног знака ц који се понавља највише 9 пута.
Додајте дужину префикса праћеног c у comp.

Вратите стринг comp.

Пример 1:

Улаз: word = "abcde"
Излаз: "1a1b1c1d1e"
Објашњење:
На почетку, comp = "". Примените операцију 5 пута, бирајући "a", "b", "c", "d", и "e" као префикс у свакој операцији.
За сваки префикс, додајте "1" након чега следи тај карактер у comp.

Пример 2:

Улаз: word = "aaaaaaaaaaaaaabb"
Излаз: "9a5a2b"
Објашњење:
На почетку, comp = "". Примените операцију 3 пута, бирајући "aaaaaaaaa", "aaaaa", и "bb" као префикс у свакој операцији.

За префикс "aaaaaaaaa", додајте "9" након чега следи "a" у comp.
За префикс "aaaaa", додајте "5" након чега следи "a" у comp.
За префикс "bb", додајте "2" након чега следи "b" у comp.

Ограничења:

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

Дата је ниска word, компресујте га користећи следећи алгоритам:

Почните са празном ниском comp. Док word није празан, користите следећу операцију:

Уклоните префикс максималне дужине из word који је састављен од једног карактера c који се понавља највише 9 пута.
Додајте дужину префикса након чега следи c у comp.

Вратите ниску comp.

Пример 1:

Улаз: word = "abcde"
Излаз: "1a1b1c1d1e"
Објашњење:
На почетку, comp = "". Примените операцију 5 пута, бирајући "a", "b", "c", "d", и "e" као префикс у свакој операцији.
За сваки префикс, додајте "1" након чега следи тај карактер у comp.

Пример 2:

Улаз: word = "aaaaaaaaaaaaaabb"
Излаз: "9a5a2b"
Објашњење:
На почетку, comp = "". Примените операцију 3 пута, бирајући "aaaaaaaaa", "aaaaa", и "bb" као префикс у свакој операцији.

За префикс "aaaaaaaaa", додајте "9" након чега следи "a" у comp.
За префикс "aaaaa", додајте "5" након чега следи "a" у comp.
За префикс "bb", додајте "2" након чега следи "b" у comp.

Ограничења:

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


Дат вам је низ nums који се састоји од целих бројева. Такође вам је дат 2D низ queries, где је queries[i] = [pos_i, x_i].
За упит i, прво постављамо nums[pos_i] једнако x_i, затим израчунавамо одговор на упит i који је максимални збир подниза nums где ниједан од два суседна елемента нису изабрани.
Вратите збир одговора на све упите.
Пошто коначни одговор може бити веома велики, вратите га модуло 10^9 + 7.
Подниз је низ који се може добити из другог низа брисањем неких или свих елемената, без мењања редоследа преосталих елемената.

Пример 1:

Улаз: nums = [3,5,9], queries = [[1,-2],[0,-3]]
Излаз: 21
Објашњење:
Након 1. упита, nums = [3,-2,9] и максимални збир подниза са несуседним елементима је 3 + 9 = 12.
Након 2. упита, nums = [-3,-2,9] и максимални збир подниза са несуседним елементима је 9.

Пример 2:

Улаз: nums = [0,-1], queries = [[0,-5]]
Излаз: 0
Објашњење:
Након 1. упита, nums = [-5,-1] и максимални збир подниза са несуседним елементима је 0 (одабирајући празног подниза).

Ограничења:

1 <= nums.length <= 5 * 10^4
1 <= nums.length <= 5 * 10^4
-10^5 <= nums[i] <= 10^5
1 <= queries.length <= 5 * 10^4
queries[i] == [pos_i, x_i]
0 <= pos_i <= nums.length - 1
-10^5 <= x_i <= 10^5

Дат вам је низ nums који се састоји од целих бројева. Такође вам је дат 2D низ upiti, где је upiti[i] = [pos_i, x_i].
За упит i, прво постављамо nums[pos_i] једнако x_i, затим израчунавамо одговор на упит i који је максимални збир подниза nums где ниједан од два суседна елемента нису изабрани.
Вратите збир одговора на све упите.
Пошто коначни одговор може бити веома велики, вратите га модуло 10^9 + 7.
Подниз је низ који се може извести из другог низа брисањем неких или ниједног елемента без промене редоследа преосталих елемената.

Пример 1:

Улаз: nums = [3,5,9], upiti = [[1,-2],[0,-3]]
Излаз: 21
Објашњење:
Након 1^ог упита, nums = [3,-2,9] и максимални збир подниза са несуседним елементима је 3 + 9 = 12.
Након 2^ог упита, nums = [-3,-2,9] и максимални збир подниза са несуседним елементима је 9.

Пример 2:

Улаз: nums = [0,-1], upiti = [[0,-5]]
Излаз: 0
Објашњење:
Након 1^ог упита, nums = [-5,-1] и максимални збир подниза са несуседним елементима је 0 (одабирање празног подниза).

Ограничења:

1 <= nums.length <= 5 * 10^4
-10^5 <= nums[i] <= 10^5
1 <= upiti.length <= 5 * 10^4
Upiti[i] == [pos_i, x_i]
0 <= pos_i <= nums.length - 1
-10^5 <= x_i <= 10^5

Дат вам је низ nums који се састоји од целих бројева. Такође вам је дат 2D низ queries, где је queries[i] = [pos_i, x_i].
За упит i, прво постављамо nums[pos_i] једнако x_i, затим израчунавамо одговор на упит i који је максимални збир подниза nums где ниједан од два суседна елемента нису изабрани.
Вратите збир одговора на све упите.
Пошто коначни одговор може бити веома велики, вратите га модуло 10^9 + 7.
Подниз је низ који се може извести из другог низа брисањем неких или ниједног елемента без промене редоследа преосталих елемената.

Пример 1:

Улаз: nums = [3,5,9], queries = [[1,-2],[0,-3]]
Излаз: 21
Објашњење:
Након 1^ог упита, nums = [3,-2,9] и максимални збир подниза са несуседним елементима је 3 + 9 = 12.
Након 2^ог упита, nums = [-3,-2,9] и максимални збир подниза са несуседним елементима је 9.

Пример 2:

Улаз: nums = [0,-1], queries = [[0,-5]]
Излаз: 0
Објашњење:
Након 1^ог упита, nums = [-5,-1] и максимални збир подниза са несуседним елементима је 0 (одабирање празног подниза).

Ограничења:

1 <= nums.length <= 5 * 10^4
-10^5 <= nums[i] <= 10^5
1 <= queries.length <= 5 * 10^4
queries[i] == [pos_i, x_i]
0 <= pos_i <= nums.length - 1
-10^5 <= x_i <= 10^5


Дат је стринг s, потребно је да га поделите у један или више избалансираних подстрингова. На пример, ако је s == "ababcc" онда су ("abab", "c", "c"), ("ab", "abc", "c") и ("ababcc") све валидне партиције, али ("a", "bab", "cc"), ("aba", "bc", "c") и ("ab", "abcc") нису. Неизбалансирани подстрингови су подебљани.
Вратите минималан број подстрингова на који можете поделити s.
Напомена: Избалансиран стринг је стринг у коме се сваки карактер у стрингу појављује исти број пута.

Пример 1:

Улаз: s = "fabccddg"
Излаз: 3
Објашњење:
Можемо поделити стринг s у 3 подстринга на један од следећих начина: ("fab", "ccdd", "g"), или ("fabc", "cd", "dg").

Пример 2:

Улаз: s = "abababaccddb"
Излаз: 2
Објашњење:
Можемо поделити стринг s у 2 подстринга на следећи начин: ("abab", "abaccddb").

Ограничења:

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

Дати низ с, морате га поделити на један или више уравнотежених подстрингова. На пример, ако је s == "ababcc" онда су ("abab", "c", "c"), ("ab", "abc", "c") и ("ababcc") све важеће партиције, али ("a", "bab", "cc"), ("aba", "bc", "c") и ("ab", "abcc") нису. Неуравнотежени поднизови су подебљани.
Вратите минимални број подстрингова на које можете да партиционирате.
Напомена: Балансирани стринг је низ у коме се сваки знак у низу појављује исти број пута.

Пример 1:

Улаз: s = "fabccddg"
Излаз: 3
Објашњење:
Стринг с можемо поделити на 3 подниза на један од следећих начина: ("fab, "ccdd", "g") или ("fabc", "cd", "dg").

Пример 2:

Улаз: s = "abababaccddb"
Излаз: 2
Објашњење:
Можемо поделити стринг с на 2 подниза овако: ("abab", "abaccddb").

Ограничења:

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

Дат је низ знакова \( s \), потребно је да га поделите на један или више уравнотежених поднизова.  На пример, ако је s == "ababcc", онда су ("abab", "c", "c"), ("ab", "abc", "c") и ("ababcc") важеће поделе, али ("a", "bab", "cc"), ("aba", "bc", "c") и ("ab", "abcc") нису. Неуравнотежени поднизови су означени подебљано.

Вратите минималан број поднизова на које можете поделити s.

Напомена: Уравнотежен низ је низ у коме се сваки знак у низу појављује исти број пута.

Пример 1:

Улаз: s = "fabccddg"
Излаз: 3
Објашњење:
Можемо поделити стринг s у 3 подстринга на један од следећих начина: ("fab", "ccdd", "g"), или ("fabc", "cd", "dg").

Пример 2:

Улаз: s = "abababaccddb"
Излаз: 2
Објашњење:
Можемо поделити стринг s у 2 подстринга на следећи начин: ("abab", "abaccddb").

Ограничења:

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


Моћан низ за цело число x је најкраћи сортирани низ степена двојке који се сабира до x. На пример, моћан низ за 11 је [1, 2, 8].
Низ big_nums је направљен спајањем моћних низова за сваки позитиван цео број i узлазно: 1, 2, 3, и тако даље. Тако, big_nums почиње као [1, 2, 1, 2, 4, 1, 4, 2, 4, 1, 2, 4, 8, ...].
Дат је 2D целобројни матрикс queries, где за queries[i] = [from_i, to_i, mod_i] треба израчунати (big_nums[from_i] * big_nums[from_i + 1] * ... * big_nums[to_i]) % mod_i.
Врати целобројни низ answer такав да је answer[i] одговор на i^ти упит.

Пример 1:

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

Пример 2:

Улаз: queries = [[2,5,3],[7,7,4]]
Излаз: [2,2]
Објашњење:
Постоје два упита.
Први упит: big_nums[2..5] = [1,2,4,1]. Производ њих је 8. Остатак 8 по модулу 3 је 2.
Други упит: big_nums[7] = 2. Остатак 2 по модулу 4 је 2.

Ограничења:

1 <= queries.length <= 500
queries[i].length == 3
0 <= queries[i][0] <= queries[i][1] <= 10^15
1 <= queries[i][2] <= 10^5

Јака низа за цело број x је најкраћа сортирана низа степени двојке која даје суму x. На пример, јака низа за 11 је [1, 2, 8].
Низа big_nums се креира спајањем јаких низова за сваки позитиван цео број i у узлазном редоследу: 1, 2, 3, и тако даље. Тако, big_nums почиње као [1, 2, 1, 2, 4, 1, 4, 2, 4, 1, 2, 4, 8, ...].
Дат вам је 2D цео бројни матрица queries, где за queries[i] = [from_i, to_i, mod_i] треба да израчунате (big_nums[from_i] * big_nums[from_i + 1] * ... * big_nums[to_i]) % mod_i.
Вратите цео бројни низ answer тако да answer[i] буде одговор на i-ти упит.

Пример 1:
Улаз: queries = [[1,3,7]]
Излаз: [4]
Објашњење:
Постоји један упит.
big_nums[1..3] = [2, 1, 2]. Производ ових бројева је 4. Остатак од 4 по 7 је 4.

Пример 2:
Улаз: queries = [[2,5,3],[7,7,4]]
Излаз: [2,2]
Објашњење:
Постоје два упита.
Први упит: big_nums[2..5] = [1, 2, 4, 1]. Производ ових бројева је 8. Остатак од 8 по 3 је 2.
Други упит: big_nums[7] = 2. Остатак од 2 по 4 је 2.

Ограничења:
1 <= queries.length <= 500
queries[i].length == 3
0 <= queries[i][0] <= queries[i][1] <= 10^15
1 <= queries[i][2] <= 10^5

Моћан низ за целобројни x је најкраћи сортирани низ степена двојке који се сабирају до x. На пример, моћан низ за 11 је [1, 2, 8].
Низ big_nums се ствара спајањем моћних низова за сваки позитивни број i у растућем редоследу: 1, 2, 3, и тако даље. Тако, big_nums почиње као [1, 2, 1, 2, 4, 1, 4, 2, 4, 1, 2, 4, 8, ...].
Дат вам је 2D целобројни матрикс queries, где за queries[i] = [from_i, to_i, mod_i] треба да израчунате (big_nums[from_i] * big_nums[from_i + 1] * ... * big_nums[to_i]) % mod_i.
Вратите цео број у низу одговорa где је answer[i] одговор на i-ти упит.

Пример 1:

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

Пример 2:

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

Ограничења:

1 <= queries.length <= 500
queries[i].length == 3
0 <= queries[i][0] <= queries[i][1] <= 10^15
1 <= queries[i][2] <= 10^5


Дат вам је низ nums, где се сваки број у низу појављује једном или два пута.
Вратите битовски XOR свих бројева који се појављују два пута у низу, или 0 ако се ниједан број не појављује два пута.

Пример 1:

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

Пример 2:

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

Пример 3:

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

Ограничења:

1 <= nums.length <= 50
1 <= nums[i] <= 50
Сваки број у nums се појављује једном или двапут.

Дат је низ nums, где се сваки број у низу појављује једном или двапут.
Вратите битни XОR свих бројева који се појављују два пута у низу, или 0 ако се ниједан број не појављује два пута.

Пример 1:

Улаз : nums = [1,2,1,3]
излаз : 1
Објаљњење:
Једини број који се појављује двапут у nums је 1.
Пример 2:

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

Пример 3:

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

Ограничења:

1 <= nums.length <= 50
1 <= nums[i] <= 50
Сваки број у nums се појављује једном или двапут.

Дат вам је низ nums, где се сваки број у низу појављује једном или два пута.
Вратите битовски XOR свих бројева који се два пута појављују у низу, или 0 ако се ниједан број не појављује два пута.

Пример 1:

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

Пример 2:

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

Пример 3:

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

Ограничења:

1 <= nums.length <= 50
1 <= nums[i] <= 50
Сваки број у nums се појављује једном или два путa.


Добили сте низ цео бројева nums, низ цео бројева queries и цео број x.
За сваки queries[i], треба да пронађете индекс queries[i]^тог појављивања x у низу nums. Ако има мање од queries[i] појављивања x, одговор треба да буде -1 за тај упит.
Вратите низ целих бројева answer који садржи одговоре на све упите.

Пример 1:

Унос: nums = [1,3,1,7], queries = [1,3,2,4], x = 1
Излаз: [0,-1,2,-1]
Објашњење:

За 1^ви упит, прво појављивање 1 је на индексу 0.
За 2^ги упит, постоје само два појављивања 1 у nums, па је одговор -1.
За 3^ћи упит, друго појављивање 1 је на индексу 2.
За 4^ти упит, постоје само два појављивања 1 у nums, па је одговор -1.

Пример 2:

Унос: nums = [1,2,3], queries = [10], x = 5
Излаз: [-1]
Објашњење:

За 1^ви упит, 5 не постоји у nums, па је одговор -1.

Ограничења:

1 <= nums.length, queries.length <= 10^5
1 <= queries[i] <= 10^5
1 <= nums[i], x <= 10^4

Добили сте низ цео бројева nums, низ цео бројева queries и цео број x.
За сваки queries[i], треба да пронађете индекс queries[i]^тог појављивања x у низу nums. Ако има мање од queries[i] појављивања x, одговор треба да буде -1 за тај упит.
Вратите низ целих бројева answer који садржи одговоре на све упите.

Пример 1:

Улаз: nums = [1,3,1,7], queries = [1,3,2,4], x = 1
Излаз: [0,-1,2,-1]
Објашњење:

За 1^ви упит, прво појављивање 1 је на индексу 0.
За 2^ги упит, постоје само два појављивања 1 у nums, па је одговор -1.
За 3^ћи упит, друго појављивање 1 је на индексу 2.
За 4^ти упит, постоје само два појављивања 1 у nums, па је одговор -1.

Пример 2:

Улаз: nums = [1,2,3], queries = [10], x = 5
Излаз: [-1]
Објашњење:

За 1^ви упит, 5 не постоји у nums, па је одговор -1.

Ограничења:

1 <= nums.length, queries.length <= 10^5
1 <= queries[i] <= 10^5
1 <= nums[i], x <= 10^4


Дати су позитивни целобројни N, L и R.
За секвенцу A = (1, 2, \dots, N) дужине N, извршена је операција обртања елемената од L-тог до R-тог индекса једном.
Исписати секвенцу након ове операције.

Улаз

Улаз се даје са стандардног улаза у следећем формату:
N L R

Излаз

Нека је A' = (A'_1, A'_2, \dots, A'_N) низ након операције. Испишите га у следећем формату:
A'_1 A'_2 \dots A'_N

Ограничења

- Све улазне вредности су цели бројеви.
- 1 \leq L \leq R \leq N \leq 100

Пример улаза 1

5 2 3

Пример излаза 1

1 3 2 4 5

Иницијално, A = (1, 2, 3, 4, 5).
Након обртања од другог до трећег елемента, низ постаје (1, 3, 2, 4, 5), који треба исписати.

Пример улаза 2

7 1 1

Пример излаза 2

1 2 3 4 5 6 7

Могуће је да је L = R.

Пример улаза 3

10 1 10

Пример излаза 3

10 9 8 7 6 5 4 3 2 1

Могуће је да је L = 1 или R = N.

Дати су вам позитивни цели бројеви N, L и R.
За низ  A = (1, 2, \dots, N) дужине N, извршена је операција обртања елемената од L-тог до R-ог укључујући.
Одштампајте низ након ове операције.

Улаз

Улаз се даје са Стандардног улаза у следећем формату:
N L R

Излаз

Нека је A' = (A'_1, A'_2, \dots, A'_N) низ након операције. Испишите га у следећем формату:
A'_1 A'_2 \dots A'_N

Ограничења

- Све улазне вредности су цели бројеви.
- 1 \leq L \leq R \leq N \leq 100

Пример улаза 1

5 2 3

Пример излаза 1

1 3 2 4 5

Иницијално, A = (1, 2, 3, 4, 5).
Након обртања од другог до трећег елемента, низ постаје (1, 3, 2, 4, 5), који треба да се испише.

Пример улаза 2

7 1 1

Пример излаза 2

1 2 3 4 5 6 7

Могуће је да је L = R.

Пример улаза 3

10 1 10

Пример излаза 3

10 9 8 7 6 5 4 3 2 1

Могуће је да је L = 1 или R = N.

Дати су вам позитивни цели бројеви N, L и R.
За низ A = (1, 2, \dots, N) дужине N, обрнута је операција од L-тог до R-тог елемента.
Испишите низ након ове операције.

Улаз

Улаз се даје са стандардног улаза у следећем формату:
N L R

Излаз

Нека је A' = (A'_1, A'_2, \dots, A'_N) низ након операције. Испишите га у следећем формату:
A'_1 A'_2 \dots A'_N

Ограничења

- Све улазне вредности су цели бројеви.
- 1 \leq L \leq R \leq N \leq 100

Пример улаза 1

5 2 3

Пример излаза 1

1 3 2 4 5

Иницијално, A = (1, 2, 3, 4, 5).
Након обртања од другог до трећег елемента, низ постаје (1, 3, 2, 4, 5), који треба исписати.

Пример улаза 2

7 1 1

Пример излаза 2

1 2 3 4 5 6 7

Могуће је да је L = R.

Пример улаза 3

10 1 10

Пример излаза 3

10 9 8 7 6 5 4 3 2 1

Могуће је да је L = 1 или R = N.


Дате су цели бројеви N и M, израчунајте збир \displaystyle \sum_{k=0}^{N} \rm{popcount}(k \mathbin{\&} M), модуло 998244353.
Овде, \mathbin{\&} представља битовску \rm{AND} операцију.
Шта је битовска \rm{AND} операција?
Резултат x = a \mathbin{\&} b битовске \rm{AND} операције између ненегативних целих бројева a и b је дефинисан на следећи начин:

- x је јединствен ненегативни цели број који задовољава следеће услове за све ненегативне целе бројеве k:

- Ако су 2^k место у бинарном запису од a и 2^k место у бинарном запису од b обе 1, онда је 2^k место у бинарном запису од x 1.
- У супротном, 2^k место у бинарном запису од x је 0.

На пример, 3=11_{(2)} и 5=101_{(2)}, тако да је 3 \mathbin{\&} 5 = 1.

Шта је \rm{popcount}?
\rm{popcount}(x) представља број 1 у бинарном запису од x.
На пример, 13=1101_{(2)}, тако да је \rm{popcount}(13) = 3.

Унос

Унос је дат преко Стандардног Улоза у следећем формату:
N M

Излаз

Одштампајте одговор као цео број.

Ограничења

- N је цели број између 0 и 2^{60} - 1, укључиво.
- M је цели број између 0 и 2^{60} - 1, укључиво.

Пример уноса 1

4 3

Пример излаза 1

4

- \rm{popcount}(0\mathbin{\&}3) = 0
- \rm{popcount}(1\mathbin{\&}3) = 1
- \rm{popcount}(2\mathbin{\&}3) = 1
- \rm{popcount}(3\mathbin{\&}3) = 2
- \rm{popcount}(4\mathbin{\&}3) = 0

Збир ових вредности је 4.

Пример уноса 2

0 0

Пример излаза 2

0

Могуће је да N = 0 или M = 0.

Пример уноса 3

1152921504606846975 1152921504606846975

Пример излаза 3

499791890

Запамтите да израчунате резултат модуло 998244353.

Дате су цели бројеви N и M, израчунајте збир \displaystyle \sum_{k=0}^{N} \rm{popcount}(k \mathbin{\&} M), модуло 998244353.
Овде, \mathbin{\&} представља битовску \rm{AND} операцију.
Шта је битовска \rm{AND} операција?
Резултат x = a \mathbin{\&} b битовске \rm{AND} операције између ненегативних целих бројева a и b је дефинисан на следећи начин:

- x је јединствен ненегативни цели број који испуњава следеће услове за све ненегативне целе бројеве k:

- Ако су 2^k место у бинарном запису од a и 2^k место у бинарном запису од b обе 1, онда је 2^k место у бинарном запису од x 1.
- У супротном, 2^k место у бинарном запису од x је 0.

На пример, 3=11_{(2)} и 5=101_{(2)}, тако да је 3 \mathbin{\&} 5 = 1.

Шта је \rm{popcount}?
\rm{popcount}(x) представља број 1 у бинарном запису од x.
На пример, 13=1101_{(2)}, тако да је \rm{popcount}(13) = 3.

Улаз

Улаз је дат преко Стандардног Улоза у следећем формату:
N M

Излаз

Испишите одговор као цео број.

Ограничења

- N је цели број између 0 и 2^{60} - 1, укључиво.
- M је цели број између 0 и 2^{60} - 1, укључиво.

Пример улаза 1

4 3

Пример излаза 1

4

- \rm{popcount}(0\mathbin{\&}3) = 0
- \rm{popcount}(1\mathbin{\&}3) = 1
- \rm{popcount}(2\mathbin{\&}3) = 1
- \rm{popcount}(3\mathbin{\&}3) = 2
- \rm{popcount}(4\mathbin{\&}3) = 0

Збир ових вредности је 4.

Пример улаза 2

0 0

Пример излаза 2

0

Могуће је да N = 0 или M = 0.

Пример улаза 3

1152921504606846975 1152921504606846975

Пример излаза 3

499791890

Запамтите да израчунате резултат модуло 998244353.


Дат вам је низ A=(A_1,\ldots,A_N) дужине N.
Пронаћи \displaystyle \sum_{i=1}^{N-1}\sum_{j=i+1}^{N}\left\lfloor\frac{\max(A_i,A_j)}{\min(A_i,A_j)}\right\rfloor.
Овде, \lfloor x \rfloor представља највећи цео број који није већи од x. На пример, \lfloor 3.14 \rfloor=3 и \lfloor 2 \rfloor=2.

Улаз

Улаз се даје из стандардног улаза у следећем формату:
N
A_1 \ldots A_N

Излаз

Испишите одговор.

Ограничења

- 2 \leq N \leq 2\times 10^5
- 1 \leq A_i \leq 10^6
- Све вредности улаза су цели бројеви.

Пример улаза 1

3
3 1 4

Пример излаза 1

8

Тражена вредност је
\left\lfloor\frac{\max(3,1)}{\min(3,1)}\right\rfloor + \left\lfloor\frac{\max(3,4)}{\min(3,4)}\right\rfloor + \left\lfloor\frac{\max(1,4)}{\min(1,4)}\right\rfloor\\ =\left\lfloor\frac{3}{1}\right\rfloor + \left\lfloor\frac{4}{3}\right\rfloor + \left\lfloor\frac{4}{1}\right\rfloor\\ =3+1+4\\ =8.

Пример улаза 2

6
2 7 1 8 2 8

Пример излаза 2

53

Пример улаза 3

12
3 31 314 3141 31415 314159 2 27 271 2718 27182 271828

Пример излаза 3

592622

Дат вам је низ A=(A_1,\ldots,A_N) дужине N.
Пронаћи \displaystyle \sum_{i=1}^{N-1}\sum_{j=i+1}^{N}\left\lfloor\frac{\max(A_i,A_j)}{\min(A_i,A_j)}\right\rfloor.
Овде, \lfloor x \rfloor представља највећи цео број који није већи од x. На пример, \lfloor 3.14 \rfloor=3 и \lfloor 2 \rfloor=2.

Улаз

Улаз се даје из Стандардног улаза у следећем формату:
N
A_1 \ldots A_N

Излаз

Испишите одговор.

Ограничења

- 2 \leq N \leq 2\times 10^5
- 1 \leq A_i \leq 10^6
- Све вредности улаза су цели бројеви.

Пример улаза 1

3
3 1 4

Пример излаза 1

8

Тражена вредност је
\left\lfloor\frac{\max(3,1)}{\min(3,1)}\right\rfloor + \left\lfloor\frac{\max(3,4)}{\min(3,4)}\right\rfloor + \left\lfloor\frac{\max(1,4)}{\min(1,4)}\right\rfloor\\ =\left\lfloor\frac{3}{1}\right\rfloor + \left\lfloor\frac{4}{3}\right\rfloor + \left\lfloor\frac{4}{1}\right\rfloor\\ =3+1+4\\ =8.

Пример улаза 2

6
2 7 1 8 2 8

Пример излаза 2

53

Пример улаза 3

12
3 31 314 3141 31415 314159 2 27 271 2718 27182 271828

Пример излаза 3

592622