pentru prima problema...
"Daca n este destul de mare, s-ar putea ca n(n+1)/2 sa depaseasca domeniul de reprezentare al intregilor, rezultand in necesitatea implementarii operatiilor cu numere mari."
O chestie misto e sa te folosesti de overflow (cel putin in c++) daca aduni 1 + 2 + 3 + 4... + N si dupaia scazi numerele din input
tot ajungi la inceput... pentru ca la overflow merge faza circular... si dupaia cand scazi vine in sens invers.. intelegeti ce spun
deci nu trebuie numere mari si iese O(n) cu O(1) memorie