אם הבנתי נכון את הדוגמא, אז הפיתרון שלי הוא כזה:סכומי_תת_רשימה(L,L1).
{הפעולה מקבלת רשימה L לא ריקה של מספרים שלמים ומחזירה רשימה חדשה L1, כך שתכלול את
סכומי תתי הרשימות העולות בL לפי סדר הופעתן}
1. עוגן_רשימה(L) -> p.
2. אתחל_רשימה(L1).
3. עוקב_ברשימה(עוגן_רשימה(L),L).
4. כל עוד סוף_רשימה(L)<>p בצע:
4.1 מצא_סכום(L,p,sum).
4.2 הכנס_לרשימה(L1,q,sum).
{במידה והכנס לרשימה לא מקדם את הq באחד יש לקדמו : עוקב_ברשימה(L1,q) -> q }
5. החזר L1
מצא_סכום(L,p,sum).
{הפעולה מקבלת רשימה ומיקום ברשימה,ממנו ואילך סוכמת את תת הרשימה העולה המתחילה במיקום זה
הפעולה מחזירה את הסכום ואת המיקום בו מסתיימת תת הרשימה העולה}
1. TRUE -> T.
2. 0 -> sum.
3. maxint- ->Y.
5. כל עוד T בצע:
5.1 אחזר_מרשימה L,p) -> X).
5.2 אם X>Y אזי
5.2.1 sum X -> sum.
5.2.2 X ->Y.
5.2.3 עוקב_ברשימה(L,p) -> p.
אחרת
5.2.4 not T)) -> T.
6. החזר sum,p.