class Solution {
public:
vector<vector<int> > threeSum(vector<int> &num) {
vector<vector<int>>v;
int i,j,t,k,temp;
sort(num.begin(),num.end());
vector<int>b;
int n=num.size();
for(i=0;i<n;)
{
t=-1*num[i];
j=i+1;
k=n-1;
while(k>j)
{
int temp=num[k]+num[j];
if(temp==t)
{
b.push_back(num[i]);
b.push_back(num[j]);
b.push_back(num[k]);
v.push_back(b);
j++;
k--;
b.clear();
}
else if(temp<t)
{
j++;
}
else
k--;
}
t=num[i];
while(t==num[i])
i++;
}
return v;
}
};