সেটআপ
ধরুন আপনাকে 1 ≤ n ≤ 5 দিয়ে এন ফিউজ দেওয়া হয়েছে যার প্রতিটি মিটার লম্বা এবং যেখানে প্রতিটি ফিউজের সাথে প্রতি ঘন্টার ডি মিটার এন মিটারের বার্ন রেট রয়েছে ।
একটি ফিউজ এক বা উভয় প্রান্তে জ্বালানো যেতে পারে, পরবর্তীতে এক বা উভয় প্রান্তে নিভে যাওয়া, রিলিট, পুনরায় নির্বাচিত করা ইত্যাদি ইত্যাদি ফিউজ সম্পূর্ণরূপে গ্রাস না হওয়া পর্যন্ত যতবার প্রয়োজন হয় ততবার প্রয়োজন। আপনি তাত্ক্ষণিকভাবে ফিউজগুলি আলোকিত করতে এবং নিঃসরণ করতে সক্ষম হন এবং কোনও ফিউজ পুরোপুরি গ্রাস হয়ে যায় (জ্বলিয়ে যায়) আপনি ঠিক তাত্ক্ষণিকভাবে পর্যবেক্ষণ করতে পারেন।
একটি ফিউজ কাটা যাবে না এবং এটি এর প্রান্ত ছাড়া অন্য কোথাও জ্বালানো যাবে না।
এই জাতীয় সেটআপ কোনও দুটি ফিউজ আলো / গ্রাহক ইভেন্টের মধ্যে সময় পরিমাপ করে একটি অসীম নির্ভুল টাইমিং সিস্টেমের অনুমতি দেয়। উদাহরণস্বরূপ, প্রতি ঘন্টা 1 মিটার বার্ন হার সহ দুটি ফিউজ দেওয়া, আপনি ঠিক 45 মিনিট (3/4 ঘন্টা) দ্বারা পরিমাপ করতে পারেন
- একই সাথে: উভয় প্রান্তে প্রথম ফিউজটি আলোকিত করা, এক প্রান্তে দ্বিতীয় ফিউজ আলোকিত করা এবং আপনার সময়ের ব্যবধানের সূচনা চিহ্নিতকরণ
- তাত্ক্ষণিকভাবে দ্বিতীয় ফিউজের দ্বিতীয় প্রান্তে আলোকপাত করা প্রথম ফিউজটি গ্রাস করা হয় (30 মিনিট পরে)
- তাত্ক্ষণিক সময়ে আপনার সময়ের ব্যবধানের শেষ চিহ্নিত করে দ্বিতীয় ফিউজটি খাওয়া হয় (15 মিনিট পরে)
চ্যালেঞ্জ
একটি ঘন্টার সংখ্যক টি , এবং এন ফিউজের সঠিক বার্ন হারকে উপস্থাপন করে এন ভগ্নাংশের একটি সেট দেওয়া , এমন একটি প্রোগ্রাম বা ফাংশন লিখুন যাতে ফলাফলগুলি ফিউজগুলি নিয়মিত জ্বালিয়ে দেওয়ার জন্য যদি টি ঘন্টা যথাযথভাবে পরিমাপ করা যায় তবে একটি সত্যবাদী মান প্রদান করে / মিথ্যা মান অন্যথায়।
প্রোগ্রামের ইনপুট নিম্নলিখিত যে কোনও একটি হতে পারে:
- ফর্মের কমান্ড-লাইন আর্গুমেন্ট
TN/TD N1/D1 N2/D2 N3/D3 ...
- ফর্মের একটি স্ট্রিং
TN/TD N1/D1 N2/D2 N3/D3 ...
পড়াstdin
বা সমতুল্য - ফর্ম একটি স্ট্রিং
TN/TD N1/D1 N2/D2 N3/D3 ...
একটি ফাংশন আর্গুমেন্ট হিসাবে পাস - স্ট্রিংগুলির একটি অ্যারে
["TN/TD", "N1/D1", "N2/D2", "N3/D3", ...]
একটি ফাংশন আর্গুমেন্ট হিসাবে পাস করেছে
সমস্ত ক্ষেত্রে t = TN
/ TD
, কোথায় TN
, TD
∈ [1,10000]।
একইভাবে, সব ক্ষেত্রেই: ফিউজ হার বার্ন আমি = এন আমি / ডি আমি = N<i>
/ D<i>
, যেখানে N<i>
, D<i>
∈ [1,10] ∀ আমি ।
আপনি ধরে নিতে পারেন যে সর্বদা 1 থেকে 5 ফিউজ (সমেত) এর মধ্যে থাকবে এবং সমস্ত ইনপুট বৈধ এবং ইন-রেঞ্জের। আপনি ধরে নিতে পারেন যে সমস্ত ইনপুট ভগ্নাংশটি সর্বনিম্ন শর্তে দেওয়া হয়েছে।
আপনি এই চ্যালেঞ্জের জন্য ভগ্নাংশ উপাদান সহ ভাসমান পয়েন্ট নম্বর ব্যবহার করতে পারবেন না। এটি হ'ল যদি আপনি আপনার প্রয়োগের যে কোনও জায়গায় ভাসমান পয়েন্ট নম্বর ব্যবহার করেন তবে সেগুলি কেবল শূন্য ভগ্নাংশ উপাদান সহ অবিচ্ছেদ্য মানগুলি গ্রহণ করতে পারে।
স্কোরিং
এটি একটি কোড-গল্ফ চ্যালেঞ্জ, সুতরাং বাইটের মধ্যে সংক্ষিপ্ততম অনুগত জমাটি জয়কে ভূষিত করা হবে।
উদাহরণ ইনপুট / আউটপুট
input: 29/6 3/2 2/3 3/5 3/7 7/5
output: true
One solution:
- light both ends of fuse 1, mark start of interval
- on fuse 1 consumption: light both ends of fuse 2, light one end of fuse 5
- on fuse 5 consumption: extinguish one end of fuse 2, light both ends of fuse 3,
light both ends of fuse 4
- on fuse 2 consumption: extinguish one end of fuse 3, extinguish both ends of
fuse 4
- on fuse 3 consumption: relight one end of fuse 4
- on consumption of fuse 4: mark end of interval (29/6 hours)
input: 2/1 3/1 5/1 7/1
output: false
input: 5/1 6/1 1/6 9/1 1/9
output: true
One solution:
- light fuse 1 at one end, light fuse 2 at both ends, light fuse 4 at both ends
- on fuse 1 consumption: extinguish one end of fuse 2, mark start of interval
- on fuse 4 consumption: relight one end of fuse 2
- on fuse 2 consumption: mark end of interval (5 hours)
হ্যাপি ফিউজিং! :)