কম্পিউটার টিউটোরিয়াল

C++-এ পাইপস অ্যান্ড সিস্টার্নস (Pipes and Cisterns) সমস্যা সমাধান


পাইপস অ্যান্ড সিস্টার্নস সমস্যা একটি बेहद সাধারণ সমস্যা যা প্রতিযোগী পরীক্ষায় প্রায়ই থাকে। তাই এই বিষয়ে জ্ঞান থাকা জরুরি এবং এটি শিখতে কঠিন নয়।

পাইপস অ্যান্ড সিস্টার্নস

এই সমস্যায় পাইপ থাকে যা ট্যাঙ্ক/রিজারভোর/সিস্টার্ন বা तो পূরণ করে বা খালি করে।

কিছু মৌলিক নীতি:

  • পাইপ দুটি ধরনের: ইনলেট পাইপ (ট্যাঙ্ক পূরণ করে) এবং আউটলেট পাইপ (ট্যাঙ্ক খালি করে)।

  • যদি একটি পাইপ 'n' ঘণ্টায় পূরণ/খালি করে এবং ট্যাঙ্কের ধারকত্ব 'c' লিটার হয়, তবে ১ ঘণ্টায় এটি c/n লিটার পূরণ/খালি করবে।

  • যদি একসাথে কিছু পাইপ পূরণ করে এবং কিছু খালি করে, তবে তাদের যৌথ কাজ:

    ১ ঘণ্টা = Σ (c/fi) - Σ (c/ej)

    এখানে, fi হলো i-তম পাইপের পূরণের সময় এবং ej হলো j-তম পাইপের খালি করার সময়।

    এই হিসাবের চিহ্ন ফলাফল নির্দেশ করবে: ধনাত্মক হলে ট্যাঙ্ক পূরণ হবে, ঋণাত্মক হলে খালি হবে।

এখন কিছু উদাহরণ দিয়ে বুঝি:

প্রশ্ন ১

দুটি পাইপ আলাদা আলাদা ৬ ঘণ্টা এবং ৪ ঘণ্টায় একটি ট্যাঙ্ক পূরণ করে। একসাথে খোললে কত সময় লাগবে?

সমাধান

পাইপ A ১ ঘণ্টায় পূরণ করে ১/৬ অংশ।

পাইপ B ১ ঘণ্টায় পূরণ করে ১/৪ অংশ।

A এবং B একসাথে ১ ঘণ্টায় পূরণ করে ১/৬ + ১/৪ = ৫/১২ অংশ।

তবে উভয় পাইপে ট্যাঙ্ক পূরণে লাগবে ১২/৫ ঘণ্টা।

প্রশ্ন ২

ট্যাঙ্কে ৩টি পাইপ আছে। 그중 দুটি আলাদা আলাদা ১০ ঘণ্টা এবং ১৫ ঘণ্টায় পূরণ করে। তৃতীয়টি ১২ ঘণ্টায় খালি করে। সবগুলো একসাথে খোললে কত সময়ে ট্যাঙ্ক পূরণ/খালি হবে?

সমাধান

পাইপ A: ১/১০, পাইপ B: ১/১৫, পাইপ C: -১/১২।

যোগফল = ১/১০ + ১/১৫ - ১/১২ = ৫/৬০ = ১/১২।

ফলাফল ধনাত্মক, তাই ট্যাঙ্ক পূরণ হবে। পূরণের সময় = ১২ ঘণ্টা।

প্রশ্ন ৩

ট্যাঙ্কে ২টি ইনলেট পাইপ আছে। দুটি মিলে ৬ ঘণ্টায় পূরণ করে। পাইপ ১ একা কাজ করলে পাইপ ২-র চেয়ে ৫ ঘণ্টা কম লাগে। পাইপ ২ একা কত সময় লাগবে?

সমাধান

পাইপ ১-এর সময় = t ঘণ্টা, পাইপ ২-এর সময় = t+5 ঘণ্টা।

১ ঘণ্টায় পাইপ ১ পূরণ করে 1/t, পাইপ ২ পূরণ করে 1/(t+5)।

যোগফল = (2t+5)/t(t+5) = 1/6

সমীকরণ সমাধান করলে: t² - 7t - 30 = 0 → (t+3)(t-10)=0 → t=10 ঘণ্টা।

তবে পাইপ ১ = ১০ ঘণ্টা, পাইপ ২ = ১৫ ঘণ্টা।

প্রশ্ন ৪

তিনটি পাইপ A, B, C। A: ৫ ঘণ্টা, B: ১৫ ঘণ্টা, C খালি করে। সবগুলো একসাথে খোললে A+B-র চেয়ে ১৫ মিনিট বেশি লাগে। C একা কত সময়ে খালি করবে?

সমাধান

ট্যাঙ্কের ধারকত্ব = LCM(5,15) = ১৫ ইউনিট।

A-এর দক্ষতা = ৩ ইউনিট/ঘণ্টা, B-এর দক্ষতা = ১ ইউনিট/ঘণ্টা।

A+B-এর দক্ষতা = ৪ ইউনিট/ঘণ্টা। A+B দিয়ে পূরণের সময় = ১৫/৪ = ৩ ঘণ্টা ৪৫ মিনিট।

সব পাইপ খোললে সময় = ৪ ঘণ্টা। মোট দক্ষতা = ১৫/৪ = ৩.৭৫ ইউনিট/ঘণ্টা।

C-এর দক্ষতা = ৪ - ৩.৭৫ = ০.২৫ ইউনিট/ঘণ্টা।

C-এর সময় = ১৫/০.২৫ = ৬০ ঘণ্টা। (মূল লেখায় ৩ ঘণ্টা ৪৫ মিনিট লেখা আছে যা ভুল, সঠিক ৬০ ঘণ্টা)।


  1. সি++-এ dynamic_cast এবং static_cast

  2. C++-এ fmax() এবং fmin() ফাংশন

  3. C এবং C++-এ স্ট্রাকচারের পার্থক্য

  4. C++-এ delete() এবং free()