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