נתון מערך של מספרים שלמים arr. אם אפשר לחלק את איברי המערך לשתי קבוצות שוות בגודלן (כלומר מספר האיברים בהן זהה) כך שסכום האיברים בשתי הקבוצות שווה יוחזר true. אם אי אפשר לעשות זאת, השיטה תחזיר false.
דוגמאות:
| 0 | 1 | 2 | 3 | 4 | 5 |
| -3 | 5 | 12 | 14 | -9 | 13 |
יוחזר true כי -3 + 5 + 14 = 12 + -9 + 13 וגם בכל קבוצה יש 3 איברים.
| 0 | 1 | 2 | 3 | 4 | 5 |
| -3 | 5 | -12 | 14 | -9 | 13 |
יוחזר false כי אומנם -3 + 5 + 14 + -12 = -9 + 13 אבל מספר האיברים בשתי הקבוצות שונה (כלומר יש ארבעה איברים בקבוצה אחת ורק שניים).
| 0 | 1 | 2 | 3 | 4 |
| -3 | 5 | -12 | 14 | -9 |
יוחזר false כי אין חלוקה של איברי המערך לשתי קבוצות שוות בגודלן.
השיטה צריכה להיות רקורסיבית ללא שימוש בלולאות כלל. כך גם כל שיטות העזר (אם תכתבו) לא יכולות להכיל לולאות.
המערך אינו null ואינו ריק.
אין לשנות את תוכן המערך (אפילו לא זמנית), ולא להשתמש במערך עזר.
arr = [-3, 5, 12, 14, -9, 13]
true
הסבר: ניתן לחלק את המערך לשתי קבוצות שוות בגודלן ובסכומן: {-3, 5, 14} ו-{12, -9, 13}.
arr = [-3, 5, -12, 14, -9, 13]
false
הסבר: לא ניתן לחלק את המערך לשתי קבוצות שוות בגודלן ובסכומן.
arr = [-3, 5, -12, 14, -9]
false
הסבר: לא ניתן לחלק את המערך לשתי קבוצות שוות בגודלן ובסכומן.
arr = [1, 1, 1, 1, 1, 1]
true
הסבר: ניתן לחלק את המערך לשתי קבוצות שוות בגודלן ובסכומן: {1, 1, 1} ו-{1, 1, 1}.
arr = [10, -10, 5, 5]
false
הסבר: לא ניתן לחלק את המערך לשתי קבוצות שוות בגודלן ובסכומן.
arr = [3, 1, 4, 2, 2]
false
הסבר: לא ניתן לחלק את המערך לשתי קבוצות שוות בגודלן ובסכומן.
arr = [1, 2, 3, 4, 5, 6]
false
הסבר: לא ניתן לחלק את המערך לשתי קבוצות שוות בגודלן ובסכומן.
arr = [2, 2, 2, 2, 2, 2, 2, 2]
true
הסבר: ניתן לחלק את המערך לשתי קבוצות שוות בגודלן ובסכומן: {2, 2, 2, 2} ו-{2, 2, 2, 2}.
קלט:
arr = [-3, 5, 12, 14, -9, 13]
הפלט המבוקש:
true