Използвайте даденият клас SinglyLinkedList
и реализирайте в него функцията void group(int startPos, int endPos)
, която сумира елементите между подадените две позиции (включително позициите) и ги замества в масива със сумата им. (
Пример
При списък 1, 2, 3, 4, 5, 6, 7, 8, 9
и group(2, 4)
получаваме списък 1, 2, 12, 6, 7, 8, 9
Ако позициите не са валидни, операцията не се изпълнява, а на стандартния изход се принтира fail_grouping
.
Input Format
Входът на функцията са две цели числа, които указват начална и крайна позиция за групиране.
Constraints
Функцията следва да работи за списък с милион елемента.
Output Format
Функцията променя списъка и не връща резултат (но принтира на стандартния изход, ако индексите не са добри). Цялата програма връща сравнително сложен резултат за тестови цели.
Sample Input 0
4
5
add 1 0
add 2 0
add 3 0
group 0 0
print
5
add 1 0
add 2 0
add 3 0
group 0 1
print
5
add 1 0
add 2 0
add 3 0
group 0 2
print
5
add 1 0
add 2 0
add 3 0
group 0 3
print
Sample Output 0
3#2#1#
5#1#
6#
fail_grouping3#2#1#