#include<cstdio>
#include<cstdlib>
#include<string.h>
#include<cmath>
int n,m,ans;
int a[10];
int j,i,t;

int cmp(const void *a,const void *b)
{
	return *(int *)a-*(int *)b;
}

int change(int x,int y)
{
	x*=10;
	return (y+x);
}

int main()
{
	int first,second;
	freopen("input.txt","r",stdin);
	freopen("output.txt","w",stdout);
	scanf("%d",&m);
	for (t=1;t<=m;t++)
	{
		memset(a,0,sizeof(a));
		first=0;
	
		second=0;
		scanf("%d",&n);
	    for (i=1;i<=n;i++) 
			scanf("%d",&a[i]);
        qsort(a,n+1,sizeof(int),cmp);
		if (n & 1==1)
		{
			if (a[1])
			{
			for (j=1;j<=(n/2+1);j++)
			{first=change(first,a[j]);}
			}
			else 
			{
				first=change(first,a[2]);
				first=change(first,0);
				for (j=3;j<=(n/2+1);j++)
				{first=change(first,a[j]);}
			}
			for (j=n;j>=n/2+2;j--)
			{second=change(second,a[j]);}
			ans=first-second;
			printf("%d\n",ans);
		}
		else
		if (n==2) {printf("%d\n",a[2]-a[1]);}
		else
		{
			int cha,num,j,dd;
			cha=9;
			for (j=1;j<n;j++)
			{ 
				if ((a[j+1]-a[j]<cha)&&(a[j]!=0))
				{
					cha=a[j+1]-a[j];
					num=j;
					dd=abs(n/2-j);
				}
				else 
				{
					if (a[j+1]-a[j]==cha)
						if (abs(n/2-j)<dd) {num=j;dd=abs(n/2-j);}
				}
			}
			first=change(first,a[num]);
			second=change(second,a[num+1]);
			int temp=0;
			for (j=n;j>1;j--)
			{
				if ((j!=num)&&(j!=num+1))
				{
					first=change(first,a[j]);
				    temp++;
				}
				if (temp==(n-2)/2) break;
			}
			temp=0;
			for (j=1;j<n;j++)
			{
				if ((j!=num)&&(j!=num+1))
				{
					second=change(second,a[j]);
					temp++;
				}
				if (temp==(n-2)/2) break;
			}
			ans=second-first;
			printf("%d\n",ans);
		}
	}
	return 0;
}

    给定一些不同的一位数字,你可以从这些数字中选择若干个,并将它们按一定顺序排列,组成一个整数,把剩下的数字按一定顺序排列,组成另一个整数。组成的整数不能以0开头(除非这个整数只有1位)。
    例如,给定6个数字,0,1,2,4,6,7,你可以用它们组成一对数10和2467,当然,还可以组成其他的很多对数,比如210和764,204和176。这些对数中两个数差的绝对值最小的是204和176,为28。
    给定N个不同的0~9之间的数字,请你求出用这些数字组成的每对数中,差的绝对值最小的一对(或多对)数的绝对值是多少?