#include <iostream>
using namespace std;
void insertSort(int* tab, int n);
int main()
{
int liczba_testow, liczba_pomiarow;
cin>>liczba_testow;
while (liczba_testow>0)
{
cin>>liczba_pomiarow;
int* tab = new int[liczba_pomiarow];
int pomiar;
int najw=0;
int najm=0;
for(int i=0;i<liczba_pomiarow;i++)
{
cin>>pomiar;
tab[i] = pomiar;
najw+=pomiar;
};
insertSort(tab,liczba_pomiarow);
for(int i=0;i<liczba_pomiarow;i++)
{
if(najm<0) najm += tab[liczba_pomiarow-i-1];
else najm -= tab[liczba_pomiarow-i-1];
};
if (najm<0) najm = (-najm);
cout<<najm<<" "<<najw<<endl;
delete [] tab;
liczba_testow--;
};
return 0;
}
void insertSort(int* tab, int n)
{
for(int i=n-2;i>=0;i--)
{
int j=i;
int temp=tab[j];
while((temp>tab[j+1]) && (j<n-1))
{
tab[j]=tab[j+1];
j++;
};
tab[j] = temp;
};
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZvaWQgaW5zZXJ0U29ydChpbnQqIHRhYiwgaW50IG4pOwoKaW50IG1haW4oKQp7CiAgICBpbnQgbGljemJhX3Rlc3RvdywgbGljemJhX3BvbWlhcm93OwogICAgY2luPj5saWN6YmFfdGVzdG93OwogICAgd2hpbGUgKGxpY3piYV90ZXN0b3c+MCkKICAgIHsKICAgICAgICBjaW4+PmxpY3piYV9wb21pYXJvdzsKICAgICAgICBpbnQqIHRhYiA9IG5ldyBpbnRbbGljemJhX3BvbWlhcm93XTsKICAgICAgICBpbnQgcG9taWFyOwogICAgICAgIGludCBuYWp3PTA7CiAgICAgICAgaW50IG5ham09MDsKICAgICAgICBmb3IoaW50IGk9MDtpPGxpY3piYV9wb21pYXJvdztpKyspCiAgICAgICAgewogICAgICAgICAgICBjaW4+PnBvbWlhcjsKICAgICAgICAgICAgdGFiW2ldID0gcG9taWFyOwogICAgICAgICAgICBuYWp3Kz1wb21pYXI7CiAgICAgICAgfTsKICAgICAgICBpbnNlcnRTb3J0KHRhYixsaWN6YmFfcG9taWFyb3cpOwogICAgICAgIGZvcihpbnQgaT0wO2k8bGljemJhX3BvbWlhcm93O2krKykKICAgICAgICB7CiAgICAgICAgICAgIGlmKG5ham08MCkgbmFqbSArPSB0YWJbbGljemJhX3BvbWlhcm93LWktMV07CiAgICAgICAgICAgIGVsc2UgbmFqbSAtPSB0YWJbbGljemJhX3BvbWlhcm93LWktMV07CiAgICAgICAgfTsKICAgICAgICBpZiAobmFqbTwwKSBuYWptID0gKC1uYWptKTsKICAgICAgICBjb3V0PDxuYWptPDwiICI8PG5hanc8PGVuZGw7CgogICAgICAgIGRlbGV0ZSBbXSB0YWI7CiAgICAgICAgbGljemJhX3Rlc3Rvdy0tOwogICAgfTsKICAgIHJldHVybiAwOwp9CnZvaWQgaW5zZXJ0U29ydChpbnQqIHRhYiwgaW50IG4pCnsKICAgIGZvcihpbnQgaT1uLTI7aT49MDtpLS0pCiAgICB7CiAgICAgICAgaW50IGo9aTsKICAgICAgICBpbnQgdGVtcD10YWJbal07CiAgICAgICAgd2hpbGUoKHRlbXA+dGFiW2orMV0pICYmIChqPG4tMSkpCiAgICAgICAgewogICAgICAgICAgICB0YWJbal09dGFiW2orMV07CiAgICAgICAgICAgIGorKzsKICAgICAgICB9OwogICAgICAgIHRhYltqXSA9IHRlbXA7CiAgICB9Owp9CgoK