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; }