結果
| 問題 |
No.565 回転拡大
|
| コンテスト | |
| ユーザー |
tsuchinaga
|
| 提出日時 | 2019-03-27 13:00:14 |
| 言語 | Go (1.23.4) |
| 結果 |
AC
|
| 実行時間 | 11 ms / 2,000 ms |
| コード長 | 1,115 bytes |
| コンパイル時間 | 11,841 ms |
| コンパイル使用メモリ | 226,328 KB |
| 実行使用メモリ | 5,248 KB |
| 最終ジャッジ日時 | 2024-10-11 02:17:38 |
| 合計ジャッジ時間 | 12,861 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 30 |
ソースコード
package main
import "fmt"
func main() {
var r, k, h, w, x, y int
_, _ = fmt.Scan(&r, &k, &h, &w)
index := func(i, j int) int { return 0 }
switch r {
case 0:
x, y = h, w
index = func(i, j int) int { return y*i + j }
case 90:
x, y = w, h
index = func(i, j int) int { return y - 1 - i + y*j }
case 180:
x, y = h, w
index = func(i, j int) int { return x*y - y*i - j - 1 }
case 270:
x, y = w, h
index = func(i, j int) int { return y*(x-1) + i - y*j }
}
// 回転しながら配列に入れる
pic := make([]int, h*w)
var c string
for i := 0; i < h; i++ {
_, _ = fmt.Scan(&c)
for j, c := range []rune(c) {
// fmt.Println(h, w, h*w, len(pic), i, j, index(i, j))
if c == '#' {
k := index(i, j)
pic[k] = 1
}
}
}
// fmt.Println(pic)
// 拡大しながら出力
for i := 0; i < x; i++ {
for a := 0; a < k; a++ { // 拡大分の縦の繰り返し
for j := 0; j < y; j++ {
for a := 0; a < k; a++ { // 拡大分の横の繰り返し
if pic[y*i+j] == 0 {
fmt.Print(".")
} else {
fmt.Print("#")
}
}
}
fmt.Println()
}
}
}
tsuchinaga