27ος ΠΔΠ Καμπ (juniors)
Άθροισμα ζευγών (sumx)
Δίνεται μια ακολουθία \(N\) θετικών ακεραίων \(A_1, A_2, \ldots , A_N\). Δίνεται επίσης ένας ακέραιος \(X\). Γράψτε ένα πρόγραμμα που να βρίσκει το πλήθος των ζευγών \((A_i, A_j)\), όπου \(1 \leq i < j \leq N\) και \(A_i + A_j = X\).
Αρχεία Εισόδου (sumx.in):
Η πρώτη γραμμή της εισόδου θα περιέχει τους αριθμούς \(N\) και \(X\), χωρισμένους μεταξύ τους με ένα κενό διάστημα. Η δεύτερη γραμμή της εισόδου θα περιέχει τους \(N\) ακέραιους αριθμούς \(A_i\) της ακολουθίας, χωρισμένους μεταξύ τους με ένα κενό διάστημα.
Αρχεία Εξόδου (sumx.out):
Η έξοδος πρέπει να αποτελείται από μία γραμμή που να περιέχει ακριβώς ένα φυσικό αριθμό: το ζητούμενο πλήθος των ζευγών.
Παραδείγματα Αρχείων Εισόδου - Εξόδου:
1o
sumx.in | sumx.out |
---|---|
9 13 5 12 7 10 9 1 2 3 11 |
3 |
Εξήγηση 1ου παραδείγματος: Στο πρώτο παράδειγμα τα δυνατά ζεύγη είναι τρία:
\[A_2 + A_6 = 12 + 1 = 13 \\ A_4 + A_8 = 10 + 3 = 13 \\ A_7 + A_9 = 2 + 11 = 13\]2o
sumx.in | sumx.out |
---|---|
5 12 1 2 3 4 6 |
0 |
Εξήγηση 2ου παραδείγματος: Στο δεύτερο παράδειγμα δεν υπάρχει ζεύγος που να δίνει άθροισμα \(12\).
3o
sumx.in | sumx.out |
---|---|
6 10 2 4 6 8 4 6 |
5 |
Εξήγηση 3ου παραδείγματος: Τέλος, στο τρίτο παράδειγμα τα δυνατά ζεύγη είναι πέντε (προσοχή στους όρους που επαναλαμβάνονται):
\[A_1 + A_4 = 2 + 8 = 10 \\ A_2 + A_3 = 4 + 6 = 10 \\ A_2 + A_6 = 4 + 6 = 10 \\ A_3 + A_5 = 6 + 4 = 10 \\ A_5 + A_6 = 4 + 6 = 10\]Περιορισμοί
- \(1 \leq N \leq 1.000.000\).
- \(1 \leq X \leq 2.000.000\).
- \(1 \leq A_i \leq 1.000.000\).
- Όριο χρόνου εκτέλεσης: \(1\) sec.
- Όριο μνήμης: \(64\) MB.