Αρχική > 29ος ΠΔΠ

29ος ΠΔΠ Καμπ (juniors)
Άθροισμα δύο άκρων (twoends)

Δίνεται μια ακολουθία \(N\) θετικών ακεραίων αριθμών. Ζητείται ο μεγαλύτερος δυνατός αριθμός \(S\), τέτοιος ώστε:

  • Να υπάρχουν \(X\) όροι στην αρχή της ακολουθίας που να έχουν άθροισμα \(S\).
  • Να υπάρχουν \(Y\) όροι στο τέλος της ακολουθίας που να έχουν άθροισμα \(S\).
  • Να είναι \(X + Y \leq N\), δηλαδή οι όροι που αθροίζουμε στα δύο άκρα να μην επικαλύπτονται.

Προσέξτε ότι το πρόβλημα έχει πάντα λύση (για \(S=0\) και \(X = Y = 0\)).

Γράψτε ένα πρόγραμμα που να διαβάζει την ακολουθία και να υπολογίζει το μέγιστο δυνατό τέτοιο \(S\).

Δεδομένα εισόδου (twoends.in)

Η πρώτη γραμμή της εισόδου θα περιέχει το πλήθος \(N\) των στοιχείων της ακολουθίας. Η δεύτερη γραμμή της εισόδου θα περιέχει \(N\) ακέραιους αριθμούς, χωρισμένους ανά δύο με ένα κενό διάστημα.

Δεδομένα εξόδου (twoends.out)

Η έξοδος πρέπει να αποτελείται από μία γραμμή που να περιέχει ακριβώς έναν ακέραιο αριθμό, το μεγαλύτερο δυνατό \(S\) με τις παραπάνω ιδιότητες.

Παραδείγματα αρχείων εισόδου - εξόδου

1o

twoends.in twoends.out
7
3 2 5 7 1 6 4
10

Εξήγηση: Για το πρώτο παράδειγμα είναι \(3+2+5 = 6+4 (=10)\). Αυτό είναι το μεγαλύτερο δυνατό \(S\).

2o

twoends.in twoends.out
10
1 2 3 4 5 6 7 8 9 45
45

3o

twoends.in twoends.out
5
1 2 3 4 5
0

Περιορισμοί

  • Το άθροισμα όλων των όρων της ακολουθίας δεν υπερβαίνει το \(1.000.000.000\).
  • Mέγιστος χρόνος εκτέλεσης: \(3\) sec.
  • Mέγιστη διαθέσιμη μνήμη: \(128\) MB.

Υποπροβλήματα

  • Σε testcases που θα αντιστοιχούν στο 25% της βαθμολογίας, θα είναι \(N \leq 10.000\).
  • Σε testcases που θα αντιστοιχούν στο 50% της βαθμολογίας, θα είναι \(N \leq 1.000.000\).
  • Σε testcases που θα αντιστοιχούν στο 100% της βαθμολογίας, θα είναι \(N \leq 10.000.000\).