Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

दो घड़ी रीडिंग युग्म के बीच अधिकतम संभव सबसे छोटा समय अंतर ढूंढने के लिए C++ प्रोग्राम


मान लीजिए हमारे पास N तत्वों वाला एक ऐरे D है। एक कोड फेस्टिवल में अमल सहित N+1 प्रतिभागी हैं। अमल ने जांचा और पाया कि उसके शहर में स्थानीय समय और iवें व्यक्ति के शहर में स्थानीय समय के बीच का समय अंतर D[i] घंटे था। दो शहरों के बीच समय अंतर: किन्हीं दो शहरों A और B के लिए, यदि शहर B में स्थानीय समय शहर A में स्थानीय समय 0 बजे होने के क्षण में d बजे है, तो इन दो शहरों के बीच समय अंतर d और 24-d घंटे का न्यूनतम है।

यहां, हम 24-घंटे संकेतन का उपयोग कर रहे हैं। फिर, N+1 लोगों में से चुने गए प्रत्येक दो लोगों के युग्म के लिए, उसने उनके शहरों के बीच समय अंतर लिख दिया। उनमें से सबसे छोटे समय अंतर को s घंटे मान लें। हमें s का अधिकतम संभव मान ढूंढना है।

उदाहरण के लिए, यदि इनपुट D = [7, 12, 8] है, तो आउटपुट 4 होगा, क्योंकि दूसरे और तीसरे व्यक्तियों के शहरों के बीच समय अंतर 4 घंटे है।

चरण

इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:

n := D का आकार ऐरे D को सॉर्ट करें एक ऐरे t परिभाषित करें 0 को t के अंत में डालें i := 0 से n-1 तक, करें: यदि i mod 2, 0 के बराबर है, तो: D[i] को t के अंत में डालें अन्यथा 24 - D[i] को t के अंत में डालें ऐरे t को सॉर्ट करें ans := inf i := 1 से t के आकार-1 तक, करें: ans := ans और t[i] - t[i - 1] का न्यूनतम 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++ में घड़ी के घंटे और मिनट की सुई के बीच का कोण C++ में घड़ी के घंटे और मिनट की सुई के बीच का कोण

    मान लीजिए हमारे पास दो मान घंटे (hours) और मिनट (minutes) हैं। हमें घंटे और मिनट की सुई के बीच बने छोटे कोण को ज्ञात करना है। उदाहरण के लिए, यदि इनपुट hour = 12, minutes = 45 है, तो आउटपुट 112.5 होगा। समाधान दृष्टिकोण यदि h = 12, तो h := 0 सेट करें। यदि m = 60, तो m := 0 सेट करें। घंटे की सुई का क

  1. C++ में बाइनरी ट्री के दो नोड्स के बीच दूरी ढूंढना C++ में बाइनरी ट्री के दो नोड्स के बीच दूरी ढूंढना

    इस समस्या में, हमें एक बाइनरी ट्री और दो नोड्स दिए गए हैं। हमारा कार्य बाइनरी ट्री के दो नोड्स के बीच दूरी ढूंढने के लिए एक प्रोग्राम बनाना है।समस्या विवरणहमें दो नोड्स के बीच की दूरी ढूंढनी है जो एक नोड से दूसरे नोड तक जाने पर पार की जाने वाली न्यूनतम एज की संख्या है।उदाहरण से समझते हैंइनपुट: बाइनर

  1. C++ में दिए गए वृत्त के दो भागों के कोणों का सबसे छोटा अंतर ढूंढना C++ में दिए गए वृत्त के दो भागों के कोणों का सबसे छोटा अंतर ढूंढना

    इस समस्या में, हमें एक ऐरे दिया गया है जो वृत्त के टुकड़ों को उनके कोणों के आधार पर दर्शाता है। हमारा कार्य C++ में दिए गए वृत्त के दो भागों के कोणों का सबसे छोटा अंतर ढूंढने के लिए एक प्रोग्राम बनाना है। समस्या विवरण हमें ऐरे में वृत्त के सभी टुकड़ों के कोण दिए गए हैं। हमें टुकड़ों को इस तरह जोड़न