当前位置: 代码迷 >> 综合 >> 寒假训练周赛2--Almost Rectangle
  详细解决方案

寒假训练周赛2--Almost Rectangle

热度:47   发布时间:2023-12-06 06:06:22.0

题目

 

OHgg 获得了一个大小等于 n \times nn×n 的正方形方阵,方针内有两个单元格被画上了星星,也就是被标记了. 这两个单元格可以在相同的位置(即同行同列).

他需要再给两个单元格画上星星,让这四个带星星的单元格表示为与坐标轴平行的矩形的四个角

例如,如果 n=4n=4 并且这个矩阵看起来是这样的 (用星号标记了两个单元格):

\begin{matrix} . & * & . & . \\ . & . & . & . \\ * & . & . & . \\ . & . & . & . \\ \end{matrix}..?.??...?....?....?

那么他可以这样再多给两个单元格画上星星

\begin{matrix} * & * & . & . \\ . & . & . & . \\ * & * & . & . \\ . & . & . & . \\ \end{matrix}?.?.??.?.?....?....?

如果有多个解决方案,输出任意一个都可以。

Input

第一行有一个整数 tt (1 \le t \le 4001≤t≤400). 接下来是 tt 个测试样例.

每个测试用例的第一行包含一个整数 nn (2 \le n \le 4002≤n≤400) — 矩阵的行和列的数量

接下来 nn 行分别包含 nn 个字符 '.' 或者 '*' 表示空单元格和标记单元格.

保证所有测试样例 nn 的和不超过 400400.

保证矩阵上正好有两个星号。它们可以在同一行或同一列.

保证存在解决方案.

Output

对于每个测试样里,输出 nn 行,每行 nn 个字符 — 与输入内容相对应且带有四个星号的矩阵. 如果有多个正确答案输出任意一个即可.

Example

Input

6
4
..*.
....
*...
....
2
*.
.*
2
.*
.*
3
*.*
...
...
5
.....
..*..
.....
.*...
.....
4
....
....
*...
*...

Output

*.*.
....
*.*.
....
**
**
**
**
*.*
*.*
...
.....
.**..
.....
.**..
.....
....
....
**..
**..

代码

#include<bits/stdc++.h>
#include <iostream>
#include <cstdio>
#include <math.h>
using namespace std;int main()
{int t,n;cin >>t;while(t--){char a[405][405]={0};int ai[2]={0},bi[2]={0};cin >>n;int i,j;int a1=0,b1=0;for(i=0;i<n;i++)for(j=0;j<n;j++){cin >>a[i][j];if(a[i][j]=='*'){ai[a1++]=i;//储存*的横纵坐标bi[b1++]=j;}}if(bi[0]==bi[1]&&bi[0]==n-1)/.*/.*这种情况{a[ai[0]][bi[0]-1]='*';a[ai[1]][bi[0]-1]='*';}else if(bi[0]==bi[1]&&bi[0]==0)题中n==4时{a[ai[0]][bi[0]+1]='*';a[ai[1]][bi[0]+1]='*';}else if(bi[0]==bi[1])/在中间时{a[ai[0]][bi[0]+1]='*';a[ai[1]][bi[0]+1]='*';}else if(ai[0]==ai[1]&&ai[0]==0)//题中n==3时{a[ai[0]+1][bi[0]]='*';a[ai[0]+1][bi[1]]='*';}else if(ai[0]==ai[1]&&ai[0]==n-1)//俩*号在底边且挨着{a[ai[0]-1][bi[0]]='*';a[ai[0]-1][bi[1]]='*';}else if(ai[0]==ai[1])//在中间挨着{a[ai[0]-1][bi[0]]='*';a[ai[0]-1][bi[1]]='*';}else{a[ai[0]][bi[0]]='*';//不挨着的情况a[ai[1]][bi[0]]='*';a[ai[0]][bi[1]]='*';a[ai[1]][bi[1]]='*';}for(i=0;i<n;i++){for(j=0;j<n;j++)//输出图像cout << a[i][j] ;cout <<endl;}}return 0;
}

  相关解决方案