#include <stdio.h>#include <stdlib.h>#define min( a, b ) ((a)<(b)?(a):(b))int A[ 501 ];int B[ 501 ];int T[ 501 ][ 501 ];int S[ 501 ][ 501 ];int cmp( const void*a, const void*b ){ return *((int *)a) - *((int *)b);}int f( int *a, int *b, int N, int M ){ for ( int i = 1 ; i <= N ; ++ i ) for ( int j = i ; j <= M ; ++ j ) S[ i ][ j ] = (a[ i ]-b[ j ])*(a[ i ]-b[ j ]); for ( int i = 1 ; i <= N ; ++ i ) for ( int j = i ; j <= M ; ++ j ) T[ i ][ j ] = 0xfffffff; for ( int i = 0 ; i <= M ; ++ i ) T[ 0 ][ i ] = 0; for ( int i = 1 ; i <= N ; ++ i ) { T[ i ][ i ] = T[ i-1 ][ i-1 ] + S[ i ][ i ]; for ( int j = i+1 ; j <= M ; ++ j ) T[ i ][ j ] = min( T[ i-1 ][ j-1 ]+S[ i ][ j ], T[ i ][ j-1 ] ); } return T[ N ][ M ];}int main(){ int t,N,M,S; scanf("%d",&t); while ( t -- ) { scanf("%d",&N); for ( int i = 1 ; i <= N ; ++ i ) scanf("%d",&A[ i ]); scanf("%d",&M); for ( int i = 1 ; i <= M ; ++ i ) scanf("%d",&B[ i ]); qsort( &A[ 1 ], N, sizeof( int ), cmp ); qsort( &B[ 1 ], M, sizeof( int ), cmp ); if ( N <= M ) printf("%dn",f( A, B, N, M )); else printf("%dn",f( B, A, M, N )); } return 0;}