במסלול של רכבת n ישנן תחנות. מחירי הכרטיסים של הנסיעות מתחנה i לתחנה j כאשר j גדול ממש מ-i (נתונים במערך דו-ממדי).
לדוגמה, מערך המחירים של הכרטיסים הוא זה:
שימו לב, הערכים בתאים במיקום בהם i גדול מ- j הם 1-, כי מותר לנסוע רק בכיוון אחד (רק מ-i ל-j שמקיימים i<j, וכאשר הם שווים, המחיר הוא 0, כי נשארים בתחנה).
| 0 | 1 | 2 | 3 | |
| 0 | 0 | 15 | 80 | 90 |
| 1 | -1 | 0 | 40 | 50 |
| 2 | -1 | -1 | 0 | 70 |
| 3 | -1 | -1 | -1 | 0 |
בדוגמה לעיל, המחיר המינימלי הוא 65, אפשר להגיע אליו אם נוסעים מתחנה 0 לתחנה 1 ומתחנה 1 לתחנה 3.
יש להחזיר את המחיר המינימלי של של נסיעה מהתחנה הראשונה 0 לאחרונה n-1.
השיטה צריכה להיות רקורסיבית ללא שימוש בלולאות כלל. כך גם כל שיטות העזר (אם תכתבו) לא יכולות להכיל לולאות.
0 ומתחת לאלכסון הראשי הם -1.i לתחנה j אפשריות. אין תאים ריקים.mat = [[0, 15, 80, 90], [-1, 0, 40, 50], [-1, -1, 0, 70], [-1, -1, -1, 0]]
65
הסבר: המחיר המינימלי הוא 65, אפשר להגיע אליו אם נוסעים מתחנה 0 לתחנה 1 ומתחנה 1 לתחנה 3.
mat = [[0, 10, 75, 94], [-1, 0, 35, 50], [-1, -1, 0, 60], [-1, -1, -1, 0]]
60
הסבר: המחיר המינימלי הוא 60, אפשר להגיע אליו אם נוסעים מתחנה 0 לתחנה 2 ומתחנה 2 לתחנה 3.
mat = [[0, 20, 50, 70], [-1, 0, 30, 40], [-1, -1, 0, 60], [-1, -1, -1, 0]]
60
הסבר: המחיר המינימלי הוא 60, אפשר להגיע אליו אם נוסעים מתחנה 0 לתחנה 1 ומתחנה 1 לתחנה 3.
mat = [[0, 5, 20, 30], [-1, 0, 15, 25], [-1, -1, 0, 10], [-1, -1, -1, 0]]
30
הסבר: המחיר המינימלי הוא 30, אפשר להגיע אליו אם נוסעים ישירות מתחנה 0 לתחנה 3.
mat = [[0, 8, 50, 60], [-1, 0, 20, 30], [-1, -1, 0, 40], [-1, -1, -1, 0]]
38
הסבר: המחיר המינימלי הוא 38, אפשר להגיע אליו אם נוסעים מתחנה 0 לתחנה 1 ומתחנה 1 לתחנה 3.
mat = [[0, 12, 60, 80], [-1, 0, 25, 35], [-1, -1, 0, 45], [-1, -1, -1, 0]]
47
הסבר: המחיר המינימלי הוא 47, אפשר להגיע אליו אם נוסעים מתחנה 0 לתחנה 1 ומתחנה 1 לתחנה 3.
mat = [[0, 7, 30, 50], [-1, 0, 18, 28], [-1, -1, 0, 38], [-1, -1, -1, 0]]
35
הסבר: המחיר המינימלי הוא 35, אפשר להגיע אליו אם נוסעים מתחנה 0 לתחנה 1 ומתחנה 1 לתחנה 3.
mat = [[0, 9, 40, 70], [-1, 0, 22, 32], [-1, -1, 0, 42], [-1, -1, -1, 0]]
41
הסבר: המחיר המינימלי הוא 41, אפשר להגיע אליו אם נוסעים מתחנה 0 לתחנה 1 ומתחנה 1 לתחנה 3.
קלט:
mat = [[0, 15, 80, 90], [-1, 0, 40, 50], [-1, -1, 0, 70], [-1, -1, -1, 0]]
הפלט המבוקש:
65