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

सर्कुलर स्टेशनों से कम से कम दूरी पाने के लिए C++ कोड

मान लीजिए कि हमारे पास दो संख्याएँ s और t हैं, और n तत्वों के साथ एक अन्य सरणी D है। ड्रीमलैंड मेट्रो की सर्कल लाइन में अलग-अलग स्टेशन हैं। हम पड़ोसी स्टेशनों के सभी जोड़े के बीच की दूरी जानते हैं:डी [i] स्टेशन i और i+1 के बीच की दूरी है, और डी [एन -1] (एन -1) और 0 वें स्टेशन के बीच की दूरी है। हमें s से t तक की न्यूनतम दूरी ज्ञात करनी है।

इसलिए, यदि इनपुट s =1 जैसा है; टी =3; डी =[2, 3, 4, 9], तो आउटपुट 5 होगा।

कदम

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

n := size of D
Define an array arr of size (n + 1), and fill with 0
for initialize i := 1, when i <= n, update (increase i by 1), do:
   arr[i] := D[i - 1]
   sum1 := sum1 + arr[i]
if s > t, then:
   swap s and t
for initialize i := s, when i < t, update (increase i by 1), do:
   sum2 := sum2 + arr[i]
return minimum of sum2 and (sum1 - sum2)
लौटाएं

उदाहरण

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

#include <bits/stdc++.h>
using namespace std;
int solve(int s, int t, vector<int> D){
   int n = D.size(), sum1 = 0, sum2 = 0;
   vector<int> arr(n + 1, 0);
   for (int i = 1; i <= n; i++){
      arr[i] = D[i - 1];
      sum1 += arr[i];
   }
   if (s > t)
      swap(s, t);
   for (int i = s; i < t; i++)
      sum2 += arr[i];
   return min(sum2, sum1 - sum2);
}
int main(){
   int s = 1;
   int t = 3;
   vector<int> D = { 2, 3, 4, 9 };
   cout << solve(s, t, D) << endl;
}

इनपुट

1, 3, { 2, 3, 4, 9 }

आउटपुट

5

  1. सी++ में दूरी संपादित करें

    मान लीजिए कि हमारे पास दो शब्द हैं शब्द 1 और शब्द 2, हमें शब्द 1 से शब्द 2 तक संगीत कार्यक्रम के लिए आवश्यक न्यूनतम संक्रियाओं की संख्या ज्ञात करनी है। ऑपरेशन तीन प्रकार के हो सकते हैं, ये हैं एक कैरेक्टर डालें, एक कैरेक्टर को डिलीट करें और एक कैरेक्टर को बदलें। इसलिए यदि इनपुट स्ट्रिंग्स मूल्यांकन

  1. सी++ में लक्ष्य रंग के लिए सबसे छोटी दूरी

    मान लीजिए कि हमारे पास एक सरणी रंग है, जिसमें तीन रंग हैं:1, 2 और 3. हमने कुछ प्रश्न दिए हैं। प्रत्येक क्वेरी में दो पूर्णांक i और c होते हैं, हमें दिए गए अनुक्रमणिका i और लक्ष्य रंग c के बीच सबसे छोटी दूरी ज्ञात करनी होती है। यदि कोई समाधान नहीं है, तो -1 लौटें। तो अगर रंग सरणी [1,1,2,1,3,2,2,3,3]

  1. C++ में दिए गए नोड से k दूरी पर सभी नोड्स प्रिंट करें

    इस समस्या में, हमें एक बाइनरी ट्री, एक लक्ष्य नोड और एक पूर्णांक K दिया जाता है। हमें ट्री के सभी नोड्स को प्रिंट करना होता है जो लक्ष्य नोड से K की दूरी पर होते हैं। । बाइनरी ट्री एक विशेष पेड़ है जिसके प्रत्येक नोड में अधिकतम दो नोड (एक/दो/कोई नहीं) होते हैं। आइए समस्या को समझने के लिए एक उदाहरण