বেথকে মরুভূমিতে পালাতে সহায়তা করুন


11

অন্যান্য জল বহনকারী ধাঁধাটির মতো হলেও , এই চ্যালেঞ্জের অনন্য দিকগুলি এটিকে সম্পূর্ণ আলাদা করে তোলে।

বেথ

বেথ একটি মরুভূমির মাঝখানে একটি মরূদীতে অবস্থিত। হ্রদে প্রচুর পরিমাণে জল রয়েছে তবে দুর্ভাগ্যক্রমে কেবল এক্স বালতি রয়েছে যার প্রতিটিতেই ওয়াই লিটার জল ধারণ ক্ষমতা রয়েছে।

বেথে তার হাতে দুটি বালতি বহন করতে পারে, তবে বেঁচে থাকার জন্য, তিনি প্রতি কিলোমিটার ভ্রমণ করার পরে ঠিক 1 লিটার পান করতে হবে। তিনি কিছু বালতি আধ-পথ ছেড়ে দিতে পারেন (জল বাষ্পীভবন হয় না)।

চ্যালেঞ্জ

সূত্রটি বের করে নিন এবং সংক্ষিপ্ত সমাধানটি লিখুন যা এক্স এবং ওয়াইয়ের ধনাত্মক পূর্ণসংখ্যার মানগুলির জন্য কাজ করবে এবং বেথ ওএসিস থেকে ভ্রমণ করতে পারে বেথ সর্বাধিক দূরত্ব গণনা করবে । বালতিগুলির মধ্যে জল সরানোর অনুমতি রয়েছে।

উদাহরণ

এক্স = 3, ওয়াই = 5

  1. বেথ ওসিস থেকে 3 কিলোমিটার দূরে 1 সম্পূর্ণ বালতি ছেড়ে, ফিরে আসে (মরূদণ্ড থেকে শেষ পানীয় পান করে)
  2. বেথ 3KM পয়েন্টে আরও একটি পূর্ণ বালতি নিয়ে আসে, এখন সেখানে 12 এল।
  3. বেথ 6KM পয়েন্টে অগ্রসর হতে পারে এবং এতে 4L জল রেখে বালতি ছেড়ে যেতে পারে।
  4. 3KM পয়েন্ট ফিরে আসুন। ওসিসে ফিরে আসার জন্য এখন তার ঠিক 2L আছে।
  5. বালতিগুলি পূরণ করুন এবং 6KM পয়েন্টে ভ্রমণ করুন। তার এখন 8L জল আছে।
  6. 15KM পয়েন্টে সমস্ত পথে চালিয়ে যান।

উত্তর: 15

ইনপুট আউটপুট

আপনি সরাসরি কোডে এক্স / ওয়াই সংজ্ঞায়িত করতে পারেন বা ইনপুট থেকে পড়তে পারেন। ফলাফলটি ভেরিয়েবল বা আউটপুটতে রাখা যেতে পারে, যার মধ্যে সবচেয়ে সংক্ষিপ্ততম।


2
এটি কি কোড গল্ফ হওয়ার কথা? এটি একটি কোড চ্যালেঞ্জ হিসাবে ট্যাগ করা।
ডেনিস

হ্যাঁ, এটি কোড-গল্ফ, আমি ট্যাগটি যুক্ত করেছি। একটি সঠিক সূত্র নিয়ে আসুন এবং কোডের মাধ্যমে প্রকাশ করুন।
রোমানহংশ

1
আমি মনে করি এটি প্রথম ধাপে প্রসারিত হওয়ার উপযুক্ত। প্রথমটা আমার কাছে স্পষ্ট ছিল না যে বেথ কীভাবে মাত্র 5 লিটার জল নিয়ে 6 কিমি ভ্রমণ করতে পারে: তিনি প্রতি কিলোমিটার ভ্রমণ করার পরেই তিনি পান করেন এবং শেষের দিকে তিনি মরূদানে রয়েছেন।
xnor

1
আপনি কোনও পরীক্ষা-কেস দিতে পারেন, কোনও প্রোগ্রাম যেভাবে এটি আউটপুট দেয়?
পাভেল

উভয় পয়েন্ট সম্বলিত প্রশ্ন সম্পাদনা।
রোমানিশ

উত্তর:


2

জাভাস্ক্রিপ্ট (ES6), 25 বাইট

x=>y=>((x<3?x:3)+x)*y/2+1
x=>y=>(x<3?x+x:x+3)*y/2+1
x=>y=>(x<3?x:(x+3)/2)*y+1
x=>y=>(x<3?x:x/2+1.5)*y+1

এই সমস্ত একই মান গণনা; আমি সংক্ষিপ্ততর সূত্র নিয়ে এসেছি বলে মনে হচ্ছে না।

এর xচেয়ে কম হলে 3আপনি যতটা জল পান করতে পারেন এবং যতটা সম্ভব হাঁটতে পারেন, যা সহজ x*y+1

যখন xকমপক্ষে 3 হয় তখন আপনাকে ক্যাশে তৈরি শুরু করতে হবে।

মরূদণ্ড থেকে, আপনি একটি দূরত্বে একটি পূর্ণ বালতি ছেড়ে y/2এবং মরূদণ্ডে ফিরে আসতে পারেন। এটি করার জন্য আপনার জন্য ২ বালতি দরকার, তবে আপনার কাছে কেবল ২ টি বালতি থাকলে এটি কার্যকর হয় না কারণ আপনি যখন ওএসিসে ফিরে আসেন তখন আপনি দুটি বালতি পূরণ করতে সক্ষম হতে চান।

ওসিস থেকে, দূরত্বে একটি বালতি নিয়ে y/2, আপনি একটি দূরত্বে একটি পূর্ণ বালতিটি yরেখে ওসিসে ফিরে যেতে পারেন। এটি করার জন্য আপনার 3 বালতি দরকার।

মরূদূ থেকে, উভয়ই পূর্ণ বালতি সহ yএবং y/2, আপনি একটি দূরত্বে একটি পূর্ণ বালতি ছেড়ে 3y/2এবং মরূদণ্ডে ফিরে আসতে পারেন। এটি করার জন্য আপনার 4 টি বালতি দরকার। তারপরে আপনাকে একটি দূরত্বে একটি পূর্ণ বালতি ছেড়ে y/2অ্যাসিসে ফিরে যেতে হবে।

শেষ পর্যন্ত আপনি এখানে একটি পূর্ণ বালতি দিয়ে শেষ করতে পারেন (x-1)y/2। (আপনি পুরো বালতিটি এখান থেকে ছেড়ে দিতে পারবেন না xy/2কারণ আপনি বৃত্তাকার ভ্রমণের মতো xy, বালতিগুলির মোট ক্ষমতা) ওসিসে ফিরে আসতে সক্ষম হবেন না ))

আপনার বাকী বালতি ব্যবহার করে, আপনি (x-3)y/2... yবা পুরো বালতি ছেড়ে যেতে পারেন y/2। এই মুহুর্তে আপনি কেবল যতদূর যেতে পারেন হাঁটুন, আপনার পুরো বালতিগুলি আপনি যাচ্ছেন তে বাছাই করুন। আপনি পৌঁছানোর পরে আপনার কাছে (x-1)y/2এখনও দুটি পূর্ণ বালতি বাকি রয়েছে, আপনাকে পৌঁছানোর অনুমতি দেয় (x+3)y/2

অতিরিক্ত 1কোনও জল ছাড়াই আপনার শেষ মাইলটি হাঁটার অনুমতি দেয় এমন বিধি-বিধানগুলি থেকে আসে। যদিও উদাহরণটি দেখায় যে আপনি বালতিগুলি উপরে বর্ণিত তুলনায় কিছুটা দূরে রেখে যেতে পারেন, এটি আসলে আপনাকে আর কোনও হাঁটাচলা করতে সহায়তা করে না, কারণ আপনাকে হয় কম জল ছেড়ে দিতে হবে বা বালতি থেকে জল পৌঁছাতে হবে আগে আপনি স্থানান্তরিত হওয়ার আগেই drink চালু.

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.