30ος ΠΔΠ Καμπ (juniors)
Μέγιστα υπόλοιπα (modulo)
Δίνεται ένας πίνακας \(A\) με \(N\) θετικούς ακεραίους. Ζητείται η μέγιστη τιμή του υπολοίπου της Ευκλείδιας διαίρεσης που μπορούμε να πάρουμε από οποιοδήποτε ζεύγος ακεραίων \(A[i]\), \(A[j]\) με \(A[i] > A[j]\).
Γράψτε ένα πρόγραμμα όπου να δέχεται ως είσοδο τα στοιχεία του πίνακα και να εκτυπώνει τη μέγιστη δυνατή τιμή του παραπάνω υπολοίπου.
Δεδομένα εισόδου (modulo.in)
Η πρώτη γραμμή της εισόδου θα περιέχει έναν φυσικό αριθμό \(N\), το μέγεθος του πίνακα. Στην δεύτερη γραμμή θα δίνονται \(N\) θετικοί ακέραιοι χωρισμένοι ανά δύο με κενό διάστημα, τα στοιχεία του πίνακα.
Δεδομένα εξόδου (modulo.out)
Η έξοδος πρέπει να περιέχει μία γραμμή με ακριβώς ένα φυσικό αριθμό: το μέγιστο υπόλοιπο που μπορούμε να πάρουμε διαιρώντας δύο οποιαδήποτε στοιχεία \(A[i]\) και \(A[j]\) του πίνακα, τέτοια ώστε \(A[i] > A[j]\).
Παράδειγμα αρχείων εισόδου - εξόδου
| modulo.in | modulo.out |
|---|---|
| 3 3 4 5 |
2 |
Εξήγηση: Το μέγιστο υπόλοιπο που μπορούμε να πετύχουμε προκύπτει από την διαίρεση των αριθμών \(5\) και \(3\), αφού \(5 \mod 3 = 2\) και \(5 > 3\).
Περιορισμοί
- \(1 \leq A[i] \leq 10^6\).
- Όριο χρόνου εκτέλεσης: \(1\) sec.
- Όριο μνήμης: \(64\) MB.
Υποπροβλήματα
- Σε testcases που θα αντιστοιχούν στο 40% της βαθμολογίας, θα είναι \(N \leq 5.000\).
- Σε testcases που θα αντιστοιχούν στο 100% της βαθμολογίας, θα είναι \(N \leq 200.000\).