Hitung produk atau rasio unit SI.
Misalnya, kg m / s s
(kilogram-meter per detik kuadrat) harus kembali N
(newton).
Masukan akan selalu berupa:
- Daftar simbol untuk unit SI, dipisahkan oleh ruang (mewakili suatu produk) atau
- Di atas,,
/
dan di atas (mewakili rasio).
Masukan tidak akan pernah mengandung karakter lain (seperti literal angka atau tanda baca lainnya).
Anda dapat mengasumsikan bahwa ini akan selalu sama dengan satu unit SI.
Gunakan simbol-simbol berikut:
Base quantities:
s # second
m # meter
kg # kilogram
A # ampere
Derived quantities:
N = kg m / s s # newton
J = N m # joule
W = J / s # watt
Hz = W / J # hertz
Pa = N / m m # pascal
C = s A # coulomb
V = J / C # volt
F = C / V # farad
Ω = V / A # ohm (you may use the O symbol instead, for a penalty of +3 bytes)
S = A / V # siemens
Wb = J / A # weber
T = Wb / m m # tesla
H = Wb / A # henry
Contoh:
m => m
N m => J
J / W => s
A J / W => C
T m m => Wb
N / A m => T
V s / A => H
J S / F A => V
s / s s => Hz
Hz kg m Hz => N
Hz s / Ω => S
Wb / H => A
V Pa S s / C => Pa
N s / m Hz => kg
V A => W
s / Ω => F
J / A s A => Ω
Kode terpendek (dalam byte) menang.
kg m / s s
sebenarnya akan menjadi kilogam-meter-detik per detik, atau hanya kilogram-meter. Pekerjaan perkalian dan pembagian LTR. Apa yang Anda cari adalahkg m / (s s)
. Ini juga berlaku untuk contoh-contoh lain.1 / 2x
artinyax / 2
?Jawaban:
CJam,
1841059896 byteDi atas adalah hexdump; itu bisa dibalik dengan
xxd -r
.Verifikasi semua kasus uji sekaligus dalam juru bahasa CJam . 1
Uji coba
Ide
Kita dapat mengkodekan setiap unit u = s a m b kg c A d sebagai vektor t u = (a + c - d, b, c, d) . 2
Dengan cara ini, untuk input u 1 ... u n / v 1 ... v m , kita hanya perlu menghitung (t u 1 + ... + t u n ) - (t v 1 + ... + t v m ) dan memeriksa unit mana itu sesuai dengan.
Kode
1 Perhatikan bahwa, karena keterbatasan penerjemah online, saya tidak dapat menggunakan penyandian berbeda untuk kode sumber dan I / O. Oleh karena itu, simbol Ω muncul sebagai pengkodean UTF-8 (Î ©). Penerjemah resmi Java tidak memiliki batasan ini.
2 Ini menghemat beberapa byte dari pemetaan langsung ke (a, b, c, d) , karena ini memperpendek rentang koordinat pertama.
sumber
GNU sed, 1118
Terlalu lama tetapi menyelesaikan pekerjaan.
Skor termasuk +1 untuk
-r
opsi sed. Seolah-olah itu penting di sini. Skor tidak termasuk komentar.sumber
Javascript ES6, 479 byte
Tidak Disatukan:
Tes Berjalan:
sumber