int found = 0;
printf("[");
for (int i = 0; i < n - 2; i++) {
    if (i > 0 && arr[i] == arr[i - 1]) continue;

    int left = i + 1;
    int right = n - 1;

    while (left < right) {
        int sum = arr[i] + arr[left] + arr[right];
        if (sum == 0) {
            if (found) printf(", ");
            printf("[%d, %d, %d]", arr[i], arr[left], arr[right]);
            found = 1;

            int current_left = arr[left], current_right = arr[right];
            while (left < right && arr[left] == current_left) left++;
            while (left < right && arr[right] == current_right) right--;
        } else if (sum < 0) {
            left++;
        } else {
            right--;
        }
    }
}
printf("]\n");

if (!found) {
    printf("[]\n");
}