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

समस्याओं की संख्या गिनने के लिए C++ प्रोग्राम को सूची के बाएँ या दाएँ छोर से हल किया जा सकता है

मान लीजिए कि हमारे पास n तत्वों के साथ एक सरणी A है और एक अन्य संख्या k है। विचार करें कि किसी प्रतियोगिता में n समस्याएं हैं। अमल का समस्या समाधान कौशल k है। अमल हमेशा सूची के किसी भी छोर से समस्या हल करता है। और वह उस समस्या का समाधान नहीं कर सकता जिसकी कठिनाई k से अधिक है। जब बाएँ और दाएँ समस्याओं की कठिनाई k से अधिक होती है, तो वह रुक जाता है। हमें गिनना होगा कि वह कितनी समस्याओं का समाधान कर सकता है। A[i] ith समस्या की कठिनाई का प्रतिनिधित्व करता है।

इसलिए, यदि इनपुट ए =[4, 2, 3, 1, 5, 1, 6, 4] जैसा है; k =4, तो आउटपुट 5 होगा, क्योंकि शुरू में सबसे बाईं ओर की समस्या को 4 के साथ हल करें, फिर सबसे दाईं ओर की समस्या को 4 से हल करें, फिर दाईं ओर की सबसे अधिक समस्या को हल नहीं कर सकते, फिर बाएं से, कठिनाई 2, 3 और 1 के साथ समस्याओं को हल करें। कुल 5 समस्याओं का समाधान किया जा सकता है।

कदम

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

n := size of A
l := 0
r := n - 1
for initialize i := 0, when i < n, update (increase i by 1), do:
   if A[i] <= k and l is same as i, then:
      (increase l by 1)
while A[r] <= k, do:
   (decrease r by 1)
if l is same as n, then:
   return n
Otherwise
   return n - 1 - r + l

उदाहरण

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

#include <bits/stdc++.h>
using namespace std;

int solve(vector<int> A, int k) {
   int n = A.size();
   int l = 0, r = n - 1;
   for (int i = 0; i < n; ++i) {
      if (A[i] <= k && l == i)
         ++l;
   }
   while (A[r] <= k)
      --r;
   if (l == n)
      return n;
   else
      return n - 1 - r + l;
}
int main() {
   vector<int> A = { 4, 2, 3, 1, 5, 1, 6, 4 };
   int k = 4;
   cout << solve(A, k) << endl;
}

इनपुट

{ 4, 2, 3, 1, 5, 1, 6, 4 }, 4

आउटपुट

5

  1. सी ++ प्रोग्राम प्रत्येक सीढ़ी में सीढ़ियों की संख्या और चरणों की संख्या की गणना करने के लिए

    मान लीजिए कि हमारे पास n तत्वों के साथ एक सरणी A है। बता दें, अमल एक बहुमंजिला इमारत के अंदर सीढ़ियां चढ़ता है। हर बार जब वह चढ़ता है, तो 1 से गिनना शुरू करें। उदाहरण के लिए, यदि वह 3 कदम और 4 कदम के साथ दो सीढ़ियां चढ़ता है, तो वह 1, 2, 3, 1, 2, 3, 4 जैसी संख्याएं बोलेगा। सरणी A में, संख्याएँ अमल द

  1. C++ प्रोग्राम उन शहरों की संख्या गिनने के लिए जिन्हें हम प्रत्येक शहर से दिए गए कार्यों के साथ देख सकते हैं

    मान लीजिए कि हमारे पास (xi, yi) रूप में N निर्देशांक P की एक सूची है। x और y मान प्रथम N प्राकृत संख्याओं का क्रमपरिवर्तन हैं। 1 से N की श्रेणी में प्रत्येक k के लिए। हम शहर k पर हैं। हम कई बार मनमाने ढंग से संचालन लागू कर सकते हैं। ऑपरेशन:हम दूसरे शहर में जाते हैं जिसमें एक छोटा x-निर्देशांक होता ह

  1. सी ++ प्रोग्राम डोडेकैगन की संख्या गिनने के लिए जिसे हम आकार डी बना सकते हैं

    मान लीजिए कि हमारे पास एक संख्या d है। विचार करें कि अनंत संख्या में वर्गाकार टाइलें हैं और भुजाओं की लंबाई के साथ नियमित त्रिकोणीय टाइलें हैं। हमें यह पता लगाना है कि इन टाइलों का उपयोग करके हम कितने तरीकों से नियमित डोडेकागन (12-पक्षीय बहुभुज) बना सकते हैं। यदि उत्तर बहुत बड़ा है, तो परिणाम मोड 99