Suche nach der maximalen Summe eines Subarrays unter Berücksichtigung negativer Elemente und zyklischer Verschiebung

TypeScript Hard loops

Aufgabe «Suche nach der maximalen Summe eines Subarrays unter Berücksichtigung negativer Elemente und zyklischer Verschiebung»

Gegeben ist ein Array von ganzen Zahlen. Es ist die maximale Summe eines Subarrays (einer zusammenhängenden Folge von Elementen) nach höchstens einer zyklischen Verschiebung des Arrays nach links oder rechts zu finden. Eine zyklische Verschiebung bedeutet, dass sich die Elemente wie im Kreis bewegen. Wird keine Verschiebung durchgeführt, wird das Subarray aus dem ursprünglichen Array ausgewählt. Wird eine Verschiebung durchgeführt, kann das Subarray aus dem Array nach der Verschiebung ausgewählt werden. Geben Sie die maximal mögliche Summe aus. Die Länge des Arrays beträgt 1 bis 10^5, die Elemente von -10^4 bis 10^4. Verwenden Sie den Kadane-Algorithmus unter Berücksichtigung der zyklischen Verschiebung.

Eingabeformat

Die erste Zeile enthält eine ganze Zahl N — die Anzahl der Elemente des Arrays. Die zweite Zeile enthält N ganze Zahlen, getrennt durch Leerzeichen.

Ausgabeformat

Eine ganze Zahl — die maximale Summe des Subarrays.

Beispiele

Beispiel 1

EINGABE
3 10 -5 10
AUSGABE
20

Beispiel 2

EINGABE
7 abacaba 2 3
AUSGABE
2 aba acb
main.ts