পটভূমি
পশ্চিমা সংগীতে, প্রতিটি একক সংগীত নোটের একটি নির্দিষ্ট নাম রয়েছে। প্রতিটি অষ্টভের মধ্যে নীচের ক্রমে বারোটি অনন্য নোট রয়েছে: "সিসি # / ডিবি ডিডি # / এবি ইএফএফ # / জিবি জিজি # / আব এএ # / বিবি বি সি", যেখানে চূড়ান্ত সিটি প্রথমটির উপরে এক অক্টেভ।
বিভিন্ন অষ্টভের নোটের মধ্যে পার্থক্য বলতে, একটি সংখ্যা (একক অঙ্কে সীমাবদ্ধ এই চ্যালেঞ্জের জন্য) নোটের নামের শেষে যুক্ত হয়। সুতরাং, সি 5 হ'ল নোট যা সি 4 এর উপরে এক অক্টেভ। বিবি 6 বি 5 এর উপরে।
একটি গুরুত্বপূর্ণ তথ্য হ'ল বি 5 এবং সি 6 হ'ল নোট যা একে অপরের ঠিক পাশের, এবং সি 0 এবং বি 9 হ'ল সর্বনিম্ন এবং সর্বোচ্চ নোট।
যে কোনও দুটি নোটের মধ্যে একটি দূরত্ব রয়েছে যা তাদের মধ্যে সেমিটোন সংখ্যা। বিবি 4 বি 4 এর নীচে একটি সেমিটোন যা নিজে থেকে সি 5 এর নীচে একটি সেমিটোন। অষ্টভরে বারোটি সেমিটোন রয়েছে, সুতরাং বিবি 4 এটি # 3 থেকে 12 এর দূরত্ব, কারণ এটির উপরে একটি অষ্টক রয়েছে (লক্ষ্য করুন কীভাবে একটি নোটে দুটি নাম থাকতে পারে)।
চ্যালেঞ্জ
আপনার চ্যালেঞ্জটি হ'ল সংক্ষিপ্ততম প্রোগ্রামটি লিখুন যা STDIN থেকে সংগীত নোটগুলির একটি তালিকা নিতে পারে এবং অন্তর পরিবর্তনের তালিকাটি STDOUT এ মুদ্রণ করতে পারে।
ইনপুটটি সঙ্গীত নোটগুলির স্থান-বিভাজিত তালিকা হবে। প্রতিটি নোটে বড় হাতের অক্ষর এজি, একটি alচ্ছিক খ বা # চিহ্ন এবং একটি একক সংখ্যা থাকবে। আপনাকে E # / Fb বা B # / Cb দিয়ে ডিল করতে হবে না। উদাহরণ ইনপুট:
C4 D4 E4 F4 G4 A4 B4 C5 C4
আউটপুটটি পূর্ণসংখ্যার একটি স্পেস-বিভাজিত তালিকা হবে যা প্রতিটি ক্রমাগত নোটের মধ্যবর্তী দূরত্বকে প্রতিনিধিত্ব করে, সর্বদা একটি + বা উপসর্গযুক্ত থাকে - এটি দেখানোর জন্য যে নোটটি এর আগে কোনওটির সাথে সম্পর্কিত হয়েছে বা উত্থিত হয়েছে। ইনপুট করা নোটগুলির চেয়ে সর্বদা এক কম সংখ্যার আউটপুট হবে। উপরের ইনপুটটির উদাহরণ আউটপুট:
+2 +2 +1 +2 +2 +2 +1 -12
আরও কিছু উদাহরণ ইনপুট:
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
এবং তাদের সম্পর্কিত ফলাফল:
-1 +1 -5 +5 +2 -2 -5
+11 +11 +11 +11 +11 +11 +11
+1 -2 +3 -4 +5
বিধি ও বিধিনিষেধ
বিজয়ী উত্স কোডের অক্ষরের সংখ্যা দ্বারা নির্ধারিত হয়
আপনার প্রোগ্রামে কেবল প্রিন্টযোগ্য এএসসিআইআই অক্ষর থাকা উচিত
সংগীত বা শব্দ সম্পর্কিত কোনও বিল্ট-ইন ফাংশন আপনাকে ব্যবহার করার অনুমতি নেই
এটি বাদে, স্ট্যান্ডার্ড কোড গল্ফ বিধি প্রযোজ্য
+0
বা-0
বা0
একই রকম দুটি নোট জন্য?