Lý lịch
Trong âm nhạc phương Tây, mỗi nốt nhạc đều có một tên được gán. Trong mỗi quãng tám, có mười hai ghi chú duy nhất theo thứ tự sau: "CC # / Db DD # / Eb EFF # / Gb GG # / Ab AA # / Bb B C", trong đó C cuối cùng là một quãng tám trên đầu tiên.
Để cho biết sự khác biệt giữa các ghi chú của các quãng tám khác nhau, một số (đối với thử thách này được giới hạn ở một chữ số) được thêm vào cuối tên ghi chú. Do đó, C5 là lưu ý là một quãng tám trên C4. Bb6 ở trên B5.
Một thực tế quan trọng là B5 và C6 là các ghi chú nằm ngay cạnh nhau và C0 và B9 là các ghi chú thấp nhất và cao nhất.
Giữa hai nốt bất kỳ, có một khoảng cách là số lượng nửa cung giữa chúng. Bb4 là một nửa cung dưới B4, chính nó là một nửa cung dưới C5. Có mười hai nửa cung trong một quãng tám, vì vậy Bb4 là khoảng cách 12 so với A # 3 vì nó là một quãng tám phía trên nó (chú ý cách một nốt nhạc có thể có tối đa hai tên).
Các thách thức
Thách thức của bạn là viết chương trình ngắn nhất có thể có một danh sách các ghi chú âm nhạc từ STDIN và in danh sách các thay đổi khoảng thời gian sang STDOUT.
Đầu vào sẽ là một danh sách các ghi chú âm nhạc được phân tách bằng không gian. Mỗi ghi chú sẽ bao gồm một chữ cái viết hoa AG, ký hiệu b hoặc # tùy chọn và một số có một chữ số. Bạn sẽ không phải đối phó với E # / Fb hoặc B # / Cb. Ví dụ đầu vào:
C4 D4 E4 F4 G4 A4 B4 C5 C4
Đầu ra sẽ là một danh sách các số nguyên được phân tách bằng dấu cách biểu thị khoảng cách giữa mỗi ghi chú liên tiếp, luôn được thêm tiền tố + hoặc - để hiển thị liệu ghi chú tăng dần hay giảm dần so với ghi chú trước đó. Sẽ luôn có một số ít xuất ra hơn ghi chú được nhập. Ví dụ đầu ra cho đầu vào trên:
+2 +2 +1 +2 +2 +2 +1 -12
Một số ví dụ đầu vào:
E5 D#5 E5 B4 E5 F#5 E5 B4
C0 B0 Bb1 A2 G#3 G4 F#5 F6
G4 Ab4 Gb4 A4 F4 A#4
Và đầu ra tương ứng của họ:
-1 +1 -5 +5 +2 -2 -5
+11 +11 +11 +11 +11 +11 +11
+1 -2 +3 -4 +5
Quy tắc và hạn chế
Người chiến thắng được xác định bởi số lượng ký tự trong mã nguồn
Chương trình của bạn chỉ bao gồm các ký tự ASCII có thể in
Bạn không được phép sử dụng bất kỳ loại chức năng tích hợp nào có liên quan đến âm nhạc hoặc âm thanh
Ngoài ra, áp dụng quy tắc golf tiêu chuẩn
+0
hoặc-0
hoặc0
hai ghi chú giống hệt nhau?