#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include typedef unsigned long long ull; #define mp make_pair #define pb push_back const long double eps = 1e-9; const double pi = acos(-1.0); const long long inf = 1e18; using namespace std; // ************************************************* void ensure(bool value, string message){ if(!value){ fprintf(stderr, "Assertion failed. Message = %s", message.c_str()); throw; } } int readInt(int l, int r, string name){ int x; if(scanf("%d", &x) != 1){ fprintf(stderr, "Expected int %s in range [%d, %d], but haven't found!", name.c_str(), l, r); throw; } if(!(l <= x && x <= r)){ fprintf(stderr, "Expected int %s in range [%d, %d], but found %d!", name.c_str(), l, r, x); throw; } return x; } // ************************************************* int n, m, a[ 100100 ], sum_n = 0, sum_m = 0; void solve() { n = readInt( 1, 100000, "N" ); sum_n += n; ensure( sum_n <= 100000, "Sum of N" ); m = readInt( 1, 100000, "M" ); sum_m += m; ensure( sum_m <= 100000, "Sum of M" ); for ( int i = 0; i < m; i++ ) a[i] = readInt( 0, n - 1, "A" ); sort( a, a + m ); for ( int i = 0; i < n; i++ ) { int answer = max( max( i - a[0], a[0] - i ), max( i - a[m - 1], a[m - 1] - i ) ); printf("%d ", answer); } printf("\n"); } int main (int argc, const char * argv[]) { time_t start = clock(); int t = readInt( 1, 10000, "T" ); for ( int i = 0; i < t; i++ ) solve(); cerr << fixed << setprecision( 6 ) << "Time: " << 1.0 * ( clock() - start ) / CLOCKS_PER_SEC << "\n"; return 0; }