Dari semua karakter ASCII, mudah untuk mengatakan bahwa beberapa dari mereka membentuk grup yang merupakan rotasi dari karakter dasar yang sama. Misalnya V > ^ <,. Hal ini memungkinkan kemungkinan untuk membangun seni ASCII yang dapat diputar dengan kelipatan 90 derajat dan masih tetap seni ASCII.
Tantangan
Tujuan Anda adalah mengubah program yang menerima seni ASCII dan jumlah derajat untuk memutarnya dari STDIN, dan mencetak seni ASCII yang diputar ke STDOUT.
Pada baris input pertama, program Anda akan menerima angka N. Angka ini mewakili lebar dan tinggi dari seni ASCII.
Anda kemudian akan menerima N lebih banyak baris dengan karakter persis N masing-masing (baris baru tidak dihitung dalam angka ini). Ukuran karya seni akan selalu berupa bujur sangkar, meskipun mungkin memiliki bantalan dalam bentuk spasi untuk membuatnya menjadi bujur sangkar.
Anda kemudian akan menerima satu nomor lagi pada baris terakhir: 90, 180, atau 270. Ini mewakili berapa derajat searah jarum jam gambar harus diputar.
Catatan: Gambar yang dimasukkan hanya akan berisi karakter yang dapat diputar dengan jumlah yang benar. Jika input tidak sesuai dengan persyaratan ini dengan tepat, tidak ada perilaku spesifik yang diperlukan.
Sebagai output, program Anda harus mencetak persis N baris karakter N, dengan baris baru setelah setiap baris. Gambar harus diputar sehingga setiap karakter dalam aslinya telah diganti oleh versi yang diputar dan telah dipindahkan ke tempat yang benar dalam gambar.
Contoh (seni ASCII tidak terlalu indah)
Memasukkan
5
<- ||
| |V
+->+
|O
<--+
90
Keluaran
^ +-^
| | |
| V
+-+--
O <-
(Rotasi 90 dan 270 tidak akan terlihat sangat bagus karena karakternya bukan kotak)
Memasukkan
6
+ /\ +
| \ \|
( \/|
\ )
I \ /
:) V $
180
Keluaran
$ ^ (:
/ \ I
( \
|/\ )
|\ \ |
+ \/ +
Diperlukan Karakter yang Didukung
Untuk semua rotasi (90, 180, dan 270), program harus dapat memutar:
- Spasi,
+,@,XdanOyang tidak pernah berubah V><^|-dan\/(diputar 180 mereka tetap sama)
Untuk rotasi 180 derajat, karakter tambahan ini harus didukung
INZ%:0=S~$#yang tetap samaPd,(),[],{},MW, Dan96
P d, ( ), [ ], { }, M W, and 9 6dapatkah diputar 90º atau 270º?
v, yang bukan karakter yang didukung. Saya menganggap itu dimaksudkan menjadi huruf besarV. Juga, baris terakhir di dalamnya tidak empuk menjadi 5 karakter.