Zyklische Verschiebung der Matrix mit Maximierung der Diagonalsumme
Rust
Hard
loops
Aufgabe «Zyklische Verschiebung der Matrix mit Maximierung der Diagonalsumme»
Gegeben ist eine quadratische Matrix aus ganzen Zahlen der Größe N x N. In einem Zug kann man jede Zeile um eine beliebige Anzahl von Positionen zyklisch nach links oder rechts verschieben oder jede Spalte um eine beliebige Anzahl von Positionen zyklisch nach oben oder unten verschieben. Ziel ist es, die Summe der Elemente auf der Hauptdiagonale (von der oberen linken Ecke zur unteren rechten Ecke) zu maximieren. Finden Sie die maximal mögliche Summe nach einer beliebigen Anzahl solcher Operationen. N von 1 bis 100, die Elemente der Matrix sind ganze Zahlen von -10^6 bis 10^6.
Eingabeformat
In der ersten Zeile eine ganze Zahl N. Danach N Zeilen, jede enthält N ganze Zahlen, getrennt durch Leerzeichen.
Ausgabeformat
Eine ganze Zahl – die maximale Summe auf der Hauptdiagonale.
Beispiele
Beispiel 1
EINGABE
5
1 -2 3 -1 2
AUSGABE
5
Beispiel 2
EINGABE
3
1 2 3
4 5 6
7 8 9
AUSGABE
18
Beispiel 3
EINGABE
2
3 4
1 2
AUSGABE
6
main.rs