বছরটি 930, এবং গ্রেগরিয়ান চার্চটিতে একটি সমস্যা রয়েছে। তাদের কাছে কয়েক হাজার পৃষ্ঠার মন্ত্রসংগীত রয়েছে, তবে সমস্যাটি হ'ল যে সমস্ত শীট সংগীতটি কোনও আসল সংগঠন সিস্টেম না করে কেবল একটি গাদাতে ফেলে দেওয়া হয়েছিল:
কার্টোগ্রাফার গিল্ডে ব্যবহারকারী গেমার প্রিন্টার দ্বারা ছবি ।
চার্চের সমস্ত শীট সংগীত সংগঠিত করা দরকার, তাই তারা তাদের জন্য একটি প্রোগ্রাম লেখার জন্য একটি মধ্যযুগীয় সফটওয়্যার ইঞ্জিনিয়ার নিয়োগ করেছে। আপনি যে সফ্টওয়্যার ইঞ্জিনিয়ার নিয়োগ করা হয়েছে। যাইহোক, মধ্যযুগীয় সময়ে সংকলন প্রক্রিয়াটি ধীর বাইবেলের লিখিত স্ক্রাইবদের একটি দল প্রোগ্রামের মাধ্যমে কাগজে লেখা থাকে। স্ক্রিবিদের দলকে আপনার কোডটি সংকলন করতে সময়টি কমিয়ে আনার জন্য, আপনাকে অবশ্যই প্রোগ্রামটি যতটা সম্ভব ছোট করা উচিত।
চার্চ চায় যে তারা যে সংগীত রচনায় রচিত রয়েছে তার ভিত্তিতে মন্ত্রের সংগীতকে সংগঠিত করা হোক। চার্চের সমস্ত মন্ত্রসংগীত ডোরিয়ান স্কেলে লেখা আছে । নির্দিষ্ট অংশের সংগীতের নোটগুলি দেওয়া, আপনার প্রোগ্রামটি যে ডোরিয়ান স্কেলটি রয়েছে তাতে আউটপুট দেবে Here এখানে, আমি ডোরিয়ান স্কেলটি ঠিক কী তা ব্যাখ্যা করব। আপনি যদি ইতিমধ্যে জানেন তবে আপনি এই বিভাগটি এড়িয়ে যেতে পারেন।
যে কোনও সুরতে 12 টি নোট রয়েছে। এখানে তারা যথাযথ:
C C# D D# E F F# G G# A A# B
একটি সেমিটোন (একটি ব্যবহার করে প্রতিনিধিত্ব করা S
) ডানদিকে এক ধাপ বাড়িয়ে দিচ্ছে, চারপাশে মোড়ানো (যাতে বি থেকে একটি সেমিটোন সিটিতে ফিরে আসে)। একটি স্বর (একটি ব্যবহার করে প্রতিনিধিত্ব করা T
) দুটি সেমিটোন। উদাহরণস্বরূপ, এফ # এর থেকে একটি সেমিটোন হবে জি।
ডোরিয়ান স্কেল তৈরি করতে, আমরা তালিকার যে কোনও নোট থেকে শুরু করি এবং তারপরে আমরা যে নোটগুলির মুখোমুখি হই সেগুলি তালিকাভুক্ত করে নীচের প্যাটার্নে উঠে যাই:
T, S, T, T, T, S
একটি উদাহরণ. আমি এ থেকে শুরু করি আমার ডরিয়ান স্কেলের নোটগুলি:
A
B (up a tone)
C (up a semitone)
D (up a tone)
E (up a tone)
F# (up a tone)
G (up a semitone)
স্কেলে এ, বি, সি, ডি, ই, এফ #, এবং জি নোট রয়েছে কারণ আমি এ থেকে শুরু করেছি, আমরা এটিকে ডোরিয়ান স্কেল বলব । অতএব এখানে 12 টি আলাদা ডোরিয়ান স্কেল রয়েছে, যার প্রত্যেকটির নাম থেকেই তারা যে নোটটি শুরু করেছিল তার নাম অনুসারে রয়েছে। প্রত্যেকে আলাদা আলাদা অবস্থান থেকে শুরু করে টোন এবং সেমিটোনগুলির একই প্যাটার্ন ব্যবহার করে। আমার ব্যাখ্যা যদি সুসংগত না হয় তবে আপনি উইকিপিডিয়াকেও পরামর্শ করতে পারেন ।
প্রোগ্রামটির ইনপুটটি আপনার প্রোগ্রামের জন্য যথাযথ যা কিছু থেকে দেওয়া যেতে পারে (যেমন এসটিডিআইএন, কমান্ড লাইন আর্গুমেন্ট, raw_input()
)। এটি কোনও ভেরিয়েবলের প্রাক-প্রাথমিককরণ নাও হতে পারে। ইনপুটটি কমা বিভক্ত নোটগুলির একটি তালিকা হবে, এই টুকরোটির সুরটি উপস্থাপন করবে। বারবার নোট থাকতে পারে। টুকরাটির স্কেলটি নির্ধারিতভাবে হ্রাস করতে সক্ষম হওয়ার জন্য ইনপুটটিতে সর্বদা যথেষ্ট আলাদা নোট থাকবে। একটি উদাহরণ ইনপুট:
B,B,D,E,D,B,A,G#,A,G#,E,D,F#,E,F#,E,F#,G#,A
প্রোগ্রামটির আউটপুটটি স্ট্রিং হওয়া উচিত Dorian scale in X
, যেখানে এক্স স্কেলের প্রারম্ভিক নোট। উদাহরণ ইনপুট এর আউটপুট:
Dorian scale in B
এটি বি ( B C# D E F# G# A
) তে ডোরিয়ান স্কেলের সাথে তুলনা করে আমরা দেখতে পাই যে সুরের সমস্ত নোটগুলি এই স্কেলের মধ্যে রয়েছে। নোট সি # এই ক্ষেত্রে অব্যবহৃত। তবে বি ডরিয়ানকে সঠিক কী হিসাবে চিহ্নিত করার জন্য যথেষ্ট নোট রয়েছে। অন্য কোনও ডরিয়ান স্কেল খাপ খায় না, কারণ অন্যান্য স্কেলগুলি আমরা যা চেষ্টা করি না কেন, সর্বদা কমপক্ষে সুরের অন্তত একটি নোট থাকে যা স্কেলের সাথে সম্পর্কিত নয়।
এটি কোড গল্ফ, তাই সংক্ষিপ্ত সংখ্যক অক্ষরের সাথে এন্ট্রি জিততে পারে। আপনার যদি প্রশ্ন থাকে তবে মন্তব্যগুলিতে জিজ্ঞাসা করুন।