Cursed Indices (why it did't worked)

Describe your issue

include <bits/stdc++.h>
using namespace std;

int main() {
// your code goes here
int test;
cin>>test;
while(test–)
{
int size;
cin>>size;
vectorv;
vectorprefix(size);

    for(int i=0;i<size;i++)
    {
        int element;
        cin>>element;
        v.push_back(element);
       
    }
    sort(v.begin(),v.end());
    for(int i=0;i<size;i++)
    {
        if(i==0)
        {
            prefix[i]=v[i];
        }
        else
        {
           // int ind=i;
           if(prefix[i-1]==v[i])
           {
           for(int k=i;k<v.size();k++)
           {
               if(v[k]>v[i])
               {
                   swap(v[i],v[k]);
                   break;
               }
           }
           }
        prefix[i]=prefix[i-1]+v[i];
        }
        
    }
    // for(int i=0;i<prefix.size();i++)
    // {
    //     cout<<prefix[i];
    // }
    int count=0;
    for(int i=1;i<size;i++)
    {
       // if(prefix[i-1]==v[i] && i!=size-1)
       // {
       //     swap(v[i],v[i+1]);
       // }
        if(prefix[i-1]>=v[i])
        {
            count++;
        }
        
    }
  
    cout<<count<<endl;
    for(int i=0;i<size;i++)
    {
       
       if(i==size-1)
       {
           cout<<v[i];
       }
       else
       cout<<v[i] <<" ";
    }
    cout<<endl;
}

}

Screenshot

Additional info

@sumit_verma_7
your logic is not completely right
plzz refer my c++ code for better understanding

#include <bits/stdc++.h>
using namespace std;

int main() {
	// your code goes here
	int t;
	cin>>t;
	while(t--)
	{
	    long long int n;
	    cin>>n;
	    long long int a[n];
	    vector<long long int> v;
	    map<int,int> mp;
	    for(int i=0;i<n;i++)
	    {
	        cin>>a[i];
	    }
	    sort(a,a+n);
	    long long int val=a[0];
	    v.push_back(a[0]);
	    mp[0]=1;
	    while(1)
	    {
	        int u=upper_bound(a,a+n,val)-a;
	        if(u!=n)
	        {
	            v.push_back(a[u]);
	            mp[u]=1;
	            val+=a[u];
	        }
	        else
	        break;
	    }
	    cout<<n-v.size()<<endl;
	    for(int i=0;i<v.size();i++)
	    {
	        cout<<v[i]<<" ";
	    }
	    for(int i=0;i<n;i++)
	    {
	        if(mp[i]==0)
	        cout<<a[i]<<" ";
	    }
	    cout<<endl;
	}
	return 0;
}