কম্পিউটার

গণিত প্রতিযোগিতার বিজয়ী খুঁজে পেতে C++ কোড


ধরুন আমাদের n আকারের দুটি অ্যারে P এবং T আছে। এবং অন্য সংখ্যা গ. অমল ও বিমল একটি গণিত প্রতিযোগিতায় অংশ নিতে যাচ্ছে। এন সমস্যা আছে। ith সমস্যাটির প্রাথমিক স্কোর P[i] আছে, এবং এটি সমাধান করতে T[i] লাগে। P এবং T উভয়ই ক্রমবর্ধমান ক্রমে সাজানো হয়েছে। এখানে c হল বিন্দু হারানোর জন্য ধ্রুবক। যদি x (প্রতিযোগিতা শুরু করার x মিনিট পরে) সময়ে কোনো সমস্যা জমা দেওয়া হয়, তাহলে এটি সর্বোচ্চ(0, P[i] - c*x) পয়েন্ট দেয়। অমল 1, 2, ... n ক্রমে সমস্যাগুলি সমাধান করতে চলেছে এবং বিমল সেগুলি n, n-1, ... 1 এর মতো সমাধান করতে চলেছে। আমাদের খুঁজে বের করতে হবে কে সর্বাধিক স্কোর পাবে। যদি তারা একই থাকে তবে এটি একটি 'টাই' হবে।

সুতরাং, ইনপুট যদি c =2 এর মত হয়; P =[50, 85, 250]; T =[10, 15, 25], তাহলে আউটপুট হবে Amal।

পদক্ষেপ

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

n := size of P
m := 0
ans1 := 0
ans2 := 0
for initialize i := 0, when i < n, update (increase i by 1), do:
   m := m + T[i]
   ans1 := ans1 + maximum of (0, P[i] - c * m)
m := 0
for initialize i := n - 1, when i > 1, update (decrease i by 1), do:
   m := m + T[i]
   ans2 := ans2 + maximum of (0, P[i] - c * m)
if ans1 > ans2, then:
   return "Amal"
otherwise when ans1 < ans2, then:
   return "Bimal"
Otherwise
   return "Tie"

উদাহরণ

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

#include <bits/stdc++.h>
using namespace std;
string solve(int c, vector<int> P, vector<int> T){
   int n = P.size();
   int m = 0, ans1 = 0, ans2 = 0;
   for (int i = 0; i < n; i++){
      m += T[i];
      ans1 += max(0, P[i] - c * m);
   }
   m = 0;
   for (int i = n - 1; i > 1; i--){
      m += T[i];
      ans2 += max(0, P[i] - c * m);
   }
   if (ans1 > ans2)
      return "Amal";
   else if (ans1 < ans2)
      return "Bimal";
   else
      return "Tie";
}
int main(){
   int c = 2;
   vector<int> P = { 50, 85, 250 };
   vector<int> T = { 10, 15, 25 };
   cout << solve(c, P, T) << endl;
}

ইনপুট

2, { 50, 85, 250 }, { 10, 15, 25 }

আউটপুট

Amal

  1. ন্যূনতম গাণিতিক গড় বিচ্যুতি খুঁজে পেতে C++ কোড

  2. ব্যাটারি কম্বো সংখ্যা খুঁজে বের করতে C++ কোড

  3. সেল কালারিং গেমের বিজয়ী খুঁজে পেতে C++ প্রোগ্রাম

  4. C++ এ পারমুটেশন খুঁজুন