Maximale Subarray-Summe mit Vertauschungen

TypeScript Hard arrays

Aufgabe «Maximale Subarray-Summe mit Vertauschungen»

Gegeben ist ein Array von ganzen Zahlen. Finden Sie die maximale Subarray-Summe, die durch höchstens eine Vertauschung zweier beliebiger Elemente des Arrays (einschließlich des Falls, dass keine Vertauschung durchgeführt wird) erreicht werden kann. Das Subarray muss zusammenhängend sein. Wenn eine Vertauschung durchgeführt wird, erfolgt sie vor der Suche nach dem Subarray, und es können zwei beliebige Elemente vertauscht werden (nicht notwendigerweise aus dem Subarray). Finden Sie die maximal mögliche Subarray-Summe nach höchstens einer Vertauschung.

Eingabeformat

In der ersten Zeile eine ganze Zahl N (1 ≤ N ≤ 10^5) — die Länge des Arrays. In der zweiten Zeile N ganze Zahlen a_i (-10^4 ≤ a_i ≤ 10^4).

Ausgabeformat

Eine ganze Zahl — die maximale Subarray-Summe nach höchstens einer Vertauschung.

Beispiele

Beispiel 1

EINGABE
4 1 -2 3 4
AUSGABE
12

Beispiel 2

EINGABE
4 2 -1 -2 -3 -4
AUSGABE
4

Beispiel 3

EINGABE
shipped [{"id":1,"status":"pending","items":["book"]},{"id":2,"status":"pending","items":[]},{"id":3,"status":"pending","items":["pen","pencil"]}]
AUSGABE
[{"id":1,"status":"shipped","items":["book"]},{"id":2,"status":"pending","items":[]},{"id":3,"status":"shipped","items":["pen","pencil"]}]
main.ts