Not Sitting

Rahul and Tina are looking forward to starting their new year at college. As they enter their new classroom, they observe the seats of students are arranged in a n×mn×m grid. The seat in row rr and column cc is denoted by (r,c)(r,c), and the distance between two seats (a,b)(a,b) and (c,d)(c,d) is |a−c|+|b−d||a−c|+|b−d|.

As the class president, Tina has access to exactly kk buckets of pink paint. The following process occurs.

  • First, Tina chooses exactly kk seats in the classroom to paint with pink paint. One bucket of paint can paint exactly one seat.
  • After Tina has painted kk seats in the previous step, Rahul chooses where he sits. He will not choose a seat that has been painted pink due to his hatred of the colour pink.
  • After Rahul has chosen his seat, Tina chooses a seat for herself. She can choose any of the seats, painted or not, other than the one chosen by Rahul.

Rahul wants to choose a seat such that he sits as close to Tina as possible. However, Tina wants to sit as far away from Rahul as possible due to some complicated relationship history that we couldn't fit into the statement!

Now, Rahul wonders for k=0,1,…,n⋅m−1k=0,1,…,n⋅m−1, if Tina has kk buckets of paint, how close can Rahul sit to Tina, if both Rahul and Tina are aware of each other's intentions and they both act as strategically as possible? Please help satisfy Rahul's curiosity!

Input

The input consists of multiple test cases. The first line contains an integer tt (1≤t≤5⋅1041≤t≤5⋅104) — the number of test cases. The description of the test cases follows.

The first line of each test case contains two integers nn, mm (2≤n⋅m≤1052≤n⋅m≤105) — the number of rows and columns of seats in the classroom.

The sum of n⋅mn⋅m across all test cases does not exceed 105105.

Output

For each test case, output n⋅mn⋅m ordered integers — the distance between Rahul and Tina if both of them act optimally for every k∈[0,n⋅m−1]k∈[0,n⋅m−1].

Example

input

Copy

2
4 3
1 2

output

Copy

3 3 4 4 4 4 4 4 5 5 5 5 
1 1 

Note

One possible sequence of choices for the first testcase where Tina has k=3k=3 buckets of paints is as follows.

Tina paints the seats at positions (1,2)(1,2), (2,2)(2,2), (3,2)(3,2) with pink paint. Rahul chooses the seat at (3,1)(3,1) after which Tina chooses to sit at (1,3)(1,3).

Therefore, the distance between Tina and Rahul is |3−1|+|1−3|=4|3−1|+|1−3|=4, and we can prove that this is indeed the minimum possible distance under the given constraints. There may be other choices of seats which lead to the same answer as well.

For k=0k=0 in the first test case, Rahul can decide to sit at (2,2)(2,2) and Tina can decide to sit at (4,3)(4,3) so the distance between them would be |2−4|+|2−3|=3|2−4|+|2−3|=3.

Below are pictorial representations of the k=3k=3 and k=0k=0 cases for the first test case.

A possible seating arrangement for k=3k=3.A possible seating arrangement for k=0k=0.

 

思路:看数据范围:(2≤n⋅m≤10^5)中间是乘号,所以这一题就能暴力,如果是逗号那就是用模拟、思维来解了。一般n=500,等于几百的是dp。n=1e6是n*logn。n=1e7的是一维循环。

用思维当时写没写出来,思路应该是不会有错的,但数据范围的话一定是用思维解的。所以这题就用暴力解了。这题的Tina一定是坐在4个角上的,而且这个图是对称的,所以想出一块图形的解法,其余图形也能很快想出来,选上面的点,Tina就一定在下面,选左边的点Tina就一定在右边。以行为例:当选的点大于二分之一时,就是i-1,不大时就是n-i,将行与列的值相加即可

#include <iostream>
#include <algorithm>
#include <cstring>
#include <vector>

using namespace std;

typedef long long ll;

const int N=5e4+10;
ll sum[N];

void solve()
{
    vector<int>v;
    memset(sum,0,sizeof sum);
    int n,m;
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            v.push_back(max(i-1,n-i)+max(j-1,m-j));
        }
    }
    sort(v.begin(),v.end());
    for(auto x:v)
    {
        cout<<x<<" ";
    }cout<<endl;
}

int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        solve();
    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值