কম্পিউটার

দুই জোড়া ঘড়ির রিডিংয়ের মধ্যে সর্বাধিক সম্ভাব্য ক্ষুদ্রতম সময়ের ব্যবধান খুঁজে পেতে C++ প্রোগ্রাম


ধরুন আমাদের কাছে N উপাদান সহ একটি অ্যারে D আছে। বিবেচনা করুন একটি কোড ফেস্টিভ্যালে অমল সহ N+1 অংশগ্রহণকারীরা আছে। অমল পরীক্ষা করে দেখতে পেল যে তার শহরের স্থানীয় সময় এবং প্রথম ব্যক্তির শহরের মধ্যে সময়ের ব্যবধানটি ঘন্টা। দুটি শহরের মধ্যে সময়ের ব্যবধান:যে কোনো দুটি শহরের জন্য A এবং B শহরের স্থানীয় সময় যদি B শহরের স্থানীয় সময় 0 টা বাজে তখন এই দুটি শহরের মধ্যে সময়ের ব্যবধান শহরগুলি সর্বনিম্ন d এবং 24−d ঘন্টা।

এখানে, আমরা 24-ঘন্টা নোটেশন ব্যবহার করছি। তারপর, N+1 জনের মধ্যে থেকে বাছাই করা দুইজনের প্রতিটি জোড়ার জন্য, তিনি তাদের শহরের মধ্যে সময়ের ব্যবধান লিখেছিলেন। তাদের মধ্যে ক্ষুদ্রতম সময়ের ব্যবধান s ঘন্টা হতে দিন। আমাদের s-এর সর্বোচ্চ সম্ভাব্য মান খুঁজে বের করতে হবে।

সুতরাং, যদি ইনপুটটি D =[7, 12, 8] এর মত হয়, তাহলে আউটপুট হবে 4, কারণ দ্বিতীয় এবং তৃতীয় ব্যক্তির শহরের মধ্যে সময়ের ব্যবধান 4 ঘন্টা।

পদক্ষেপ

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

n := size of D
sort the array D
Define an array t
insert 0 at the end of t
for initialize i := 0, when i < n, update (increase i by 1), do:
   if i mod 2 is same as 0, then:
      insert D[i] at the end of t
   Otherwise
      insert 24 - D[i] at the end of t
sort the array t
ans := inf
for initialize i := 1, when i < size of t, update (increase i by 1), do:
   ans := minimum of ans and t[i] - t[i - 1]
return ans

উদাহরণ

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

#include <bits/stdc++.h>
using namespace std;
int solve(vector<int> D) {
   int n = D.size();
   sort(D.begin(), D.end());
   vector<int> t;
   t.push_back(0);
   for (int i = 0; i < n; i++){
      if (i % 2 == 0)
         t.push_back(D[i]);
      else
         t.push_back(24 - D[i]);
   }
   sort(t.begin(), t.end());
   int ans = 1e9;
   for (int i = 1; i < t.size(); i++){
      ans = min(ans, t[i] - t[i - 1]);
   }
   return ans;
}
int main(){
   vector<int> D = { 7, 12, 8 };
   cout << solve(D) << endl;
}

ইনপুট

{ 7, 12, 8 }

আউটপুট

4

  1. C++ এ ঘড়ির ঘন্টা এবং মিনিটের মধ্যে কোণ খুঁজে বের করার প্রোগ্রাম?

  2. C++ প্রোগ্রামে একটি বাইনারি ট্রির দুটি নোডের মধ্যে দূরত্ব খুঁজুন

  3. C++ এ প্রদত্ত বৃত্তের দুটি অংশের কোণের ক্ষুদ্রতম পার্থক্য খুঁজে বের করার প্রোগ্রাম

  4. পাইথনে ক্ষুদ্রতম গোষ্ঠীর সর্বাধিক সম্ভাব্য মান খুঁজে বের করার প্রোগ্রাম