結果
問題 |
No.565 回転拡大
|
ユーザー |
![]() |
提出日時 | 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() } } }