vector<vector<int>> fourSum(vector<int>& nums, int target) {
vector<vector<int>> res;
if(nums.size()<=3)return res;
sort(nums.begin(),nums.end());
for(int i=0;i<nums.size()-3;i++)
{
if(i>0&&nums[i]==nums[i-1])continue;
for(int j=i+1;j<nums.size()-2;j++)
{
if(j>i+1&&nums[j]==nums[j-1])continue;
int p=j+1,q=nums.size()-1;
while(p<q)
{
if(nums[i]+nums[j]+nums[p]+nums[q]==target)
{
res.push_back({nums[i],nums[j],nums[p],nums[q]});
while(p<q&&nums[p]==nums[p+1])p++;
while(p<q&&nums[q]==nums[q-1])q--;
p++;q--;
}
else if(nums[i]+nums[j]+nums[p]+nums[q]<target)p++;
else q--;
}
}
}
return res;
}