מערך נקרא "ממוין לסירוגין" אם שני תת-מערכים שלו המורכבים אחד ממספרים המופיעים באינדקסים הזוגיים (..., 2, 0) והשני ממספרים באינדקסים האי-זוגיים (..., 3, 1) הם ממוינים כל אחד.
במילים אחרות: מערך נקרא "ממוין לסירוגין" אם ניתן לייצר ממנו שני תת-מערכים ממוינים שאחד מורכב מהמספרים המופיעים באינדקסים הזוגיים והשני מורכב מהמספרים המופיעים באינדקסים האי-זוגיים.
לדוגמא, המערך הבא הוא ממוין לסירוגין
| 0 | 1 | 2 | 3 | 4 | 5 | 6 |
| 1 | 2 | 5 | 3 | 6 | 10 | 9 |
בעוד שהמערך הבא אינו ממוין לסירוגין (כי 4 מופיע אחרי 5 בתת-מערך הזוגיים):
| 0 | 1 | 2 | 3 | 4 | 5 | 6 |
| 1 | 2 | 5 | 3 | 4 | 10 | 9 |
בהינתן מערך ממוין לסירוגין של מספרים שלמים a ומספר שלם x יש להחזיר true אם קיימים ב-a שני איברים סמוכים שסכומם הוא x, ו-false אחרת.
לדוגמא, עבור המערך:
| 0 | 1 | 2 | 3 | 4 | 5 | 6 |
| 1 | 2 | 5 | 3 | 6 | 10 | 9 |
כאשר x=9 יוחזר true (שני האיברים הסמוכים 3 ו-6 סכומם 9) ועבור אותו מערך a כאשר x=5 יוחזר false (אין שני איברים סמוכים שסכומם 5).
השיטה צריכה להיות יעילה ככל הניתן, גם מבחינת סיבוכיות הזמן וגם מבחינת סיבוכיות המקום.
יש להתייחס גם למקרה בו במערך יש רק איבר אחד, ואז יוחזר false.
אפשר להניח שהמערך מלא בנתונים ושהוא ממוין לסירוגין.
a = [1, 2, 5, 3, 6, 10, 9], x = 9
true
הסבר: איברים סמוכים 6 ו-3 (באינדקסים 4 ו-3) נותנים סכום 9
a = [1, 2, 5, 3, 6, 10, 9], x = 5
false
הסבר: אין איברים סמוכים שסכומם 5
a = [5], x = 10
false
הסבר: מערך עם איבר אחד - אין איברים סמוכים
a = [1, 2], x = 3
true
הסבר: איברים 1 ו-2 סמוכים וסכומם 3
a = [10, 5, 20, 15, 30], x = 15
true
הסבר: איברים 10 ו-5 נותנים סכום 15
a = [1, 3, 2, 4, 5], x = 6
true
הסבר: איברים 2 ו-4 נותנים סכום 6
a = [-1, -2, -3, -4], x = -3
true
הסבר: איברים -1 ו--2 נותנים סכום -3
a = [0, 0, 0, 0, 0], x = 0
true
הסבר: כל זוג איברים סמוכים נותן סכום 0
קלט:
a = [1, 2, 5, 3, 6, 10, 9], x = 9
הפלט המבוקש:
true