#include <bits/stdc++.
h>
#include <vector>
class Solution {
public:
std::vector<std::vector<int>> threeSum(std::vector<int>& nums) {
sort([Link](), [Link]());
std::set<std::vector<int>> st;
int sum, left, right;
for(int i = 0; i < [Link](); i++){
left = i + 1;
right = [Link]() - 1;
while(left < right){
sum = nums[i] + nums[left] + nums[right];
if(sum == 0){
[Link]({nums[i], nums[left], nums[right]});
left++;
right--;
else if(sum < 0){
left++;
else right--;
std::vector<std::vector<int>> output;
for(auto triplets : st)
output.push_back(triplets);
return output;
}
};
int main(){
Solution s;
std::vector<int> num = {-1,0,1,2,-1,-4};
std::vector<std::vector<int>> output = [Link](num);
for (const auto& triplet : output) {
std::cout << "[ ";
for (int num : triplet) {
std::cout << num << " ";
std::cout << "]" << std::endl;
return 0;