num = int(input())
for i in range(num):
data = input()
data = data.split(" ")
n = int(data[0])
k = int(data[1])
r = int(data[2])
c = int(data[3])
fil = []
ans = []
if k == 1:
for z in range(n):
row = "X"*n
ans.append(row)
print("\n".join(ans))
else:
isTrues = True
for z in range(k):
row = ""
if (z + 1 == r % k or (r % (z+1) == 0 and z+1 == k)) and isTrues:
isTrues = False
for j in range(k):
if (j+1 == c % k or (c % (j+1) == 0 and j+1 == k)):
row += "X"
else:
row += "."
else:
isTrue = True
for j in range(k):
if j+1 != c % k and j+1 not in fil and isTrue:
fil.append(j+1)
row += "X"
isTrue = False
else:
row += "."
row = row*int(n/k)
ans.append(row)
ans = ans*int(n/k)
print("\n".join(ans))
#include <bits/stdc++.h>
#define int long long
#define llu unsigned long long
#define endl "\n"
#define inf 0x3f3f3f3f
using namespace std;
typedef pair<int, int> PII;
const int N = 1e6 + 7;
void solve()
{
int n,k,r,c;
cin>>n>>k>>r>>c;
int x = n/k;
int y = (c-(r%k)+1+k)%k;//初始指针
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(j%k==y||(y%k==0&&j%k==0)){
cout<<"X";
}else{
cout<<".";
}
}
++y;
if(y>k){
y%=k;
}
cout<<'\n';
}
}
signed main()
{
std::ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int T = 1;
cin >> T;
while (T--)
solve();
return 0;
}
437. Path Sum III | 436. Find Right Interval |
435. Non-overlapping Intervals | 406. Queue Reconstruction by Height |
380. Insert Delete GetRandom O(1) | 332. Reconstruct Itinerary |
368. Largest Divisible Subset | 377. Combination Sum IV |
322. Coin Change | 307. Range Sum Query - Mutable |
287. Find the Duplicate Number | 279. Perfect Squares |
275. H-Index II | 274. H-Index |
260. Single Number III | 240. Search a 2D Matrix II |
238. Product of Array Except Self | 229. Majority Element II |
222. Count Complete Tree Nodes | 215. Kth Largest Element in an Array |
198. House Robber | 153. Find Minimum in Rotated Sorted Array |
150. Evaluate Reverse Polish Notation | 144. Binary Tree Preorder Traversal |
137. Single Number II | 130. Surrounded Regions |
129. Sum Root to Leaf Numbers | 120. Triangle |
102. Binary Tree Level Order Traversal | 96. Unique Binary Search Trees |