Dividing Array

I want anyone to point out why the code 1 is giving correct ans but code 2 is not.
Code 1:

int main(){
	ll t;
	cin>>t;
	while(t--){
		ll n;
		cin>>n;
		vector<ll> v(n);
		input_vector(v,n);
		sort(v.begin(),v.end());
		ll sum1=0,sum2=0;
		ll sum3=0,sum4=0;
		for(ll i=0;i<n;i+=2){
			sum3+=v[i];
			sum4+=v[i+1];
		}
		for(ll i=0;i<n/2;i++){
			sum1+=v[i];
		}
		for(ll i=n/2;i<n;i++){
			sum2+=v[i];
		}
		cout<<sum4-sum3<<" ";
		cout<<sum2-sum1<<endl;
	} 
	return 0;
}

Code 2:

int main(){
	ll t;
	cin>>t;
	while(t--){
		ll n;
		cin>>n;
		vector<ll> v(n);
		input_vector(v,n);
		sort(v.begin(),v.end());
		ll sum1=accumulate(v.begin(),v.begin()+n/2,0),sum2=accumulate(v.begin()+n/2,v.end(),0);
		ll sum3=0,sum4=0;
		for(ll i=0;i<n;i+=2){
			sum3+=v[i];
			sum4+=v[i+1];
		}
		cout<<sum4-sum3<<" ";
		cout<<sum2-sum1<<endl;
	} 
	return 0;
}