Inovasi adalah permainan kartu di mana pemain bertempur selama berabad-abad, dari prasejarah hingga zaman modern, dalam upaya untuk mendapatkan prestasi lebih cepat dari lawan mereka.
Setiap kartu dalam Inovasi unik, dan memberikan sejumlah ikon kepada pemain. Jika kita memperlakukan setiap kartu sebagai kisi 2x3, maka tiga dari empat slot di tepi kiri dan bawah akan selalu diambil oleh ikon (simbol dalam heksagon hitam tidak dihitung).
Gim ini memiliki 6 jenis ikon (kastil, mahkota, dedaunan, bola lampu, pabrik, dan jam), yang akan kami wakili secara sewenang-wenang menggunakan karakter 012345
. Menggunakan #
untuk mewakili segi enam hitam, kita dapat menggunakan empat karakter untuk mewakili ikon pada setiap kartu. Misalnya, kartu di atas adalah
0.. #.. 3.. 1.. -> 03#0 #331 355# 144#
3#0 331 55# 44#
Sekarang, dalam Inovasi, kartu di area bermain dikelompokkan ke dalam tumpukan * yang disusun dalam salah satu dari empat cara. Untuk setiap contoh kita akan menggunakan kartu di atas, dengan asumsi kartu paling kiri 03#0
,, berada di bagian atas tumpukan.
Tanpa bentang: hanya kartu atas yang terlihat
0..
3#0
Berputar ke kiri : kartu teratas sepenuhnya terlihat, serta sepertiga kanan dari semua kartu di bawah ini
0..|.|.|.|
3#0|1|#|#|
Berputar ke kanan : kartu teratas sepenuhnya terlihat, serta sepertiga kiri dari semua kartu di bawah ini
1|3|#|0..
4|5|3|3#0
Melebar ke atas : kartu teratas sepenuhnya dapat dilihat, serta bagian bawah dari semua kartu di bawah ini.
0..
3#0
---
331
---
55#
---
44#
Tantangan
Input akan menjadi string yang dipisahkan oleh spasi tunggal yang terdiri dari dua bagian:
- Arah splay, yang merupakan salah satu dari
!<>^
, mewakili tidak ada splay, splay kiri, splay kanan atau splay masing-masing. - Daftar kartu yang tidak kosong, yang masing-masing terdiri dari 4 karakter dan terdiri dari karakter
012345#
. Kartu paling kiri berada di bagian atas tumpukan, dan setiap kartu berisi persis satu#
.
Jawaban dapat berupa fungsi, program lengkap atau setara . Anda dapat memilih apakah arah rentang pertama atau terakhir, yaitu memilih salah satu dari dua format di bawah ini:
> 03#0 #331 355# 144#
03#0 #331 355# 144# >
Output akan berupa daftar enam angka yang mewakili hitungan untuk setiap ikon, misalnya untuk kartu contoh di atas:
! 03#0 #331 355# 144# -> 2 0 0 1 0 0
< 03#0 #331 355# 144# -> 2 1 0 1 0 0
> 03#0 #331 355# 144# -> 2 1 0 3 1 1
^ 03#0 #331 355# 144# -> 2 1 0 3 2 2
Misalnya, kotak tanpa bentang memiliki dua 0
ikon dan satu 3
ikon yang menunjukkan, memberikan baris pertama. Perhatikan bahwa kami tidak menghitung #
s, karena segi enam hitam bukan ikon.
Anda dapat memilih cara yang masuk akal dan tidak ambigu untuk merepresentasikan daftar, misalnya dipisahkan oleh pembatas atau menggunakan representasi daftar alami bahasa Anda.
Uji kasus
! 113# -> 0 2 0 1 0 0
< 113# -> 0 2 0 1 0 0
> 113# -> 0 2 0 1 0 0
^ 113# -> 0 2 0 1 0 0
! 000# 12#2 -> 3 0 0 0 0 0
< 000# 12#2 -> 3 0 1 0 0 0
> 000# 12#2 -> 3 1 1 0 0 0
^ 000# 12#2 -> 3 0 2 0 0 0
! 000# 111# 222# -> 3 0 0 0 0 0
< 000# 111# 222# -> 3 0 0 0 0 0
> 000# 111# 222# -> 3 2 2 0 0 0
^ 000# 111# 222# -> 3 2 2 0 0 0
! 335# #101 21#2 333# 2#20 3#33 4#54 #133 3#33 32#2 -> 0 0 0 2 0 1
< 335# #101 21#2 333# 2#20 3#33 4#54 #133 3#33 32#2 -> 1 1 2 5 1 1
> 335# #101 21#2 333# 2#20 3#33 4#54 #133 3#33 32#2 -> 0 3 3 7 1 1
^ 335# #101 21#2 333# 2#20 3#33 4#54 #133 3#33 32#2 -> 2 4 4 10 1 2
Perhatikan bahwa sesuatu seperti !
input tidak valid, karena daftar dijamin tidak kosong.
* Untuk keperluan tantangan ini, kami mengabaikan warna tumpukan.
sumber