結果
| 問題 |
No.565 回転拡大
|
| コンテスト | |
| ユーザー |
tsuchinaga
|
| 提出日時 | 2019-03-27 12:54:16 |
| 言語 | Go (1.23.4) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 1,089 bytes |
| コンパイル時間 | 13,983 ms |
| コンパイル使用メモリ | 236,488 KB |
| 実行使用メモリ | 6,816 KB |
| 最終ジャッジ日時 | 2024-10-11 02:17:22 |
| 合計ジャッジ時間 | 13,523 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 20 WA * 4 RE * 6 |
ソースコード
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 + (x-1)*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) {
if c == '#' {
k := index(i, j)
// fmt.Println(i, j, k)
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