-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathspoj12188.swift
62 lines (57 loc) · 1.47 KB
/
spoj12188.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
// http://www.spoj.com/problems/CPTTRN7/
// CPTTRN7 - Character Patterns (Act 7)
let t = Int(readLine()!)!
for index in 0..<t {
if index > 0 {
print()
}
let testcase = readLine()!
let parameters = testcase.characters.split(separator: " ").map(String.init)
let r = Int(parameters[0])!
let c = Int(parameters[1])!
let s = Int(parameters[2])!
// generate diamond matrix
var diamond: [[Character]] = []
for i in 0..<s {
var temp: [Character] = []
for j in 0..<s {
temp.append(i+j == s-1 ? "/" : ".")
}
for j in 0..<s {
temp.append(i==j ? "\\" : ".")
}
diamond.append(temp)
}
for i in 0..<s {
var temp: [Character] = []
for j in 0..<s {
temp.append(i==j ? "\\" : ".")
}
for j in 0..<s {
temp.append(i+j == s-1 ? "/" : ".")
}
diamond.append(temp)
}
// generate grid matrix
var grid: [[Character]] = []
for _ in 0..<r {
for j in 0..<s*2 {
var temp: [Character] = []
for _ in 0..<c {
for k in 0..<s*2 {
temp.append(diamond[j][k])
}
}
grid.append(temp)
}
}
// print grid matrix
for i in 0..<grid.count {
let gridLine = grid[i]
var temp = ""
for j in 0..<gridLine.count {
temp.append(gridLine[j])
}
print(temp)
}
}