Skip to content

Latest commit

 

History

History
114 lines (75 loc) · 4.39 KB

File metadata and controls

114 lines (75 loc) · 4.39 KB

রান রেট ১

সমস্যার সারসংক্ষেপ

৫০ ওভারের একটি ওয়ানডে ক্রিকেট ম্যাচে:

  • মোট বল = ৫০ × ৬ = ৩০০ বল
  • ইনপুট হিসেবে নিতে হয়:
    • r1 → প্রতিপক্ষের মোট রান
    • r2 → বর্তমান ব্যাটিং দলের রান
    • B → বাকি বলের সংখ্যা

আমাদের বের করতে হবে:

  1. বর্তমান রান রেট (Current Run Rate)
  2. জয়ের জন্য প্রয়োজনীয় রান রেট (Required Run Rate)

প্রতিটি মান দশমিকের পরে ঠিক দুই ঘর পর্যন্ত প্রিন্ট করতে হবে।


গুরুত্বপূর্ণ নিয়ম

  • ৬ বল = ১ ওভার
  • জিততে হলে প্রতিপক্ষের চেয়ে অন্তত ১ রান বেশি করতে হবে
  • খেলা হয়েছে এমন বল = 300 - B

ব্যাখ্যা

১. বর্তমান রান রেট

বর্তমান রান রেট নির্ণয় করা হয় ইতিমধ্যে করা রান এবং খেলা হওয়া বলের উপর ভিত্তি করে।

বর্তমান রান রেট = (r2 × 6) / খেলা হওয়া বল

যেখানে,

খেলা হওয়া বল = 300 - B

৬ দিয়ে গুণ করা হয় কারণ রান রেট ওভারপ্রতি (৬ বল) হিসাব করা হয়।


২. প্রয়োজনীয় রান রেট

প্রথমে জয়ের জন্য প্রয়োজনীয় রান বের করি:

প্রয়োজনীয় রান = (r1 + 1) - r2

যদি মান ঋণাত্মক হয়, তাহলে ০ ধরা হয়, কারণ দল ইতিমধ্যে জিতে গেছে।

তারপর,

প্রয়োজনীয় রান রেট = (প্রয়োজনীয় রান × 6) / B

এটি বাকি বলগুলিতে ওভারপ্রতি কত রান করতে হবে তা নির্দেশ করে।


সংক্ষেপে

  • যদি খেলা হওয়া বল ০ হয়, তাহলে বর্তমান রান রেট 0.00।
  • যদি বাকি বল ০ হয়, তাহলে প্রয়োজনীয় রান রেট 0.00।
  • যদি দল ইতিমধ্যে জিতে যায়, তাহলে প্রয়োজনীয় রান রেট 0.00।

C++ সমাধান

//------ Contributor ~ --------//
//------ MD. S. M. Sarowar Hossain --------//
//------ Varendra University --------//

#include <iostream>
#include <iomanip> //setprecision আর fixed value এর জন্য দরকারি

using namespace std;

int main()
{
    int n;
    cin >> n;

    while (n--)
    {
        long long r1, r2, B;
        cin >> r1 >> r2 >> B;

        long long ball_played = 300 - B; //৫০ ওভার = ৫০*৬ = ৩০০ বল

        double current_run_rate = 0.0;
        if (ball_played > 0){ // যদি একটাও বল না খেলে, তাহলে রান রেট ০.০।
            current_run_rate = (r2 * 6.0) / ball_played;
                 }
        double run_needed = (r1 + 1) - r2;
        if (run_needed < 0) { //যদি ১ রানের প্রয়োজন হয়, এমন সময় ব্যাটস্‌ম্যান ৪, ৬ রান সংগ্রহ করে,
                            // তাহলে খণাত্বক সংখ্যা দেখাবে, তাই if দিয়ে এমন ঘটনা এড়াতে হবে
            run_needed = 0;
                 }
        double required_run_rate = 0.0;
        if (B > 0){
            required_run_rate = (run_needed * 6.0) / B;
               }
        cout << fixed << setprecision(2)
             << current_run_rate << " "
             << required_run_rate << endl;
    }

    return 0;
}