נתון מערך דו-ממדי ריבועי mat המכיל מספרים שלמים. נסמן את מספר השורות והעמודות במערך ב-n. המספרים ב-mat הם חיוביים ממש בלבד (ללא אפסים).
המסלולים בהם נעבור במערך מתחילים תמיד בתא הראשון (0,0) ועד לתא האחרון שהוא (n-1, n-1). כאשר אפשר לעבור מתא (i,j) לכל ארבעת שכניו מימין, משמאל, למעלה ולמטה, אבל לא באלכסון.
יש למצוא את המסלול שהמספר 'המקסימלי' בו הוא המינימלי מבין המספרים המקסימליים במסלולים האחרים האפשריים. במילים אחרות, אם נסתכל על כל המסלולים במערך לפי המתואר לעיל, ובכל מסלול נמצא את האיבר המקסימלי, ולהחזיר את האיבר המקסימלי הכי קטן מכולם.
דוגמאות:
| 0 | 1 | ||
| A= | 0 | 1 | 2 |
| 1 | 3 | 4 |
| 0 | 1 | ||
| B= | 0 | 1 | 3 |
| 1 | 4 | 4 |
| 0 | 1 | 2 | 3 | ||
| D= | 0 | 4 | 5 | 8 | 2 |
| 1 | 3 | 12 | 16 | 7 | |
| 2 | 13 | 1 | 10 | 14 | |
| 3 | 15 | 11 | 9 | 6 |
| 0 | 1 | 2 | 3 | ||
| C= | 0 | 4 | 5 | 8 | 2 |
| 1 | 3 | 12 | 7 | 16 | |
| 2 | 13 | 1 | 10 | 14 | |
| 3 | 15 | 11 | 9 | 6 |
אז במערך C יוחזר 10, שהוא המקסימום במסלול המיטבי, והוא המינימלי מבין כל ערכי המקסימום של כל המסלולים האחרים.
אבל אם נחליף את התאים [1][3] שבו יש 16 ואת [1][2] שבו יש 7, (זה המערך D), המספר שיוחזר יהיה 12, שהוא המקסימום במסלול המסומן. שימו לב ש- 12 הוא המקסימום גם במסלול הזה:[0][0] → [0][1] → [1][1] → [2][1] → [2][2] → [3][2] → [3][3]
| 0 | 1 | 2 | 3 | 4 | ||
| D= | 0 | 4 | 1 | 9 | 3 | 25 |
| 1 | 24 | 23 | 2 | 21 | 5 | |
| 2 | 13 | 12 | 15 | 16 | 22 | |
| 3 | 17 | 11 | 18 | 19 | 20 | |
| 4 | 10 | 14 | 8 | 7 | 6 |
| 0 | 1 | 2 | 3 | 4 | ||
| C= | 0 | 4 | 1 | 9 | 3 | 25 |
| 1 | 24 | 23 | 22 | 21 | 5 | |
| 2 | 13 | 12 | 15 | 16 | 14 | |
| 3 | 17 | 11 | 18 | 19 | 20 | |
| 4 | 10 | 2 | 8 | 7 | 6 |
אז במערך C יוחזר 21, שהוא המינימלי מבין כל ערכי המקסימום של כל המסלולים האחרים. שימו לב ל-21 הוא המקסימום בעוד כמה מסלולים. לדוגמא:
אבל אם נחליף את התאים 2, 14, 22 במערך (זה המערך D), המספר שיוחזר יהיה 15, שהוא המקסימום במסלול המסומן.
השיטה צריכה להיות רקורסיבית ללא שימוש בלולאות כלל. כך גם כל שיטות העזר (אם תכתבו) לא יכולות להכיל לולאות.
mat = [[1,2], [3,4]]
4
הסבר: המספר המקסימלי בשני המסלולים האפשריים הוא 4
mat = [[1,3], [4,2]]
3
הסבר: המספר המקסימלי במסלול דרך (0,1) הוא 3, שהוא הקטן מבין המקסימומים
mat = [[4, 5, 8, 2], [3, 12, 7, 16], [13, 1, 10, 14], [15, 11, 9, 6]]
10
הסבר: קיים מסלול שהמספר המקסימלי בו הוא 10
mat = [[4, 5, 8, 2], [3, 12, 16, 7], [13, 1, 10, 14], [15, 11, 9, 6]]
12
הסבר: המספר המקסימלי במסלול המיטבי הוא 12
mat = [[1]]
1
הסבר: במטריצה 1x1 יש רק מסלול אחד אפשרי
mat = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
9
הסבר: קיים מסלול שבו המספר המקסימלי הוא 9
mat = [[4, 1, 9, 3, 25], [24, 23, 2, 21, 5], [13, 12, 15, 16, 22], [17, 11, 18, 19, 20], [10, 14, 8, 7, 6]]
15
הסבר: המספר המינימלי מבין כל המקסימומים האפשריים הוא 15
mat = [[4, 1, 9, 3, 25], [24, 23, 22, 21, 5], [13, 12, 15, 16, 14], [17, 11, 18, 19, 20], [10, 2, 8, 7, 6]]
21
הסבר: קיים מסלול שבו המספר המקסימלי הוא 21
קלט:
mat = [[1,2], [3,4]]
הפלט המבוקש:
4