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

C++ प्रोग्राम में प्रत्येक विकिरणित स्टेशनों का अंतिम विकिरण

मान लीजिए कि सीधी रेखा में N स्टेशन हैं। उनमें से प्रत्येक में विकिरण शक्ति की समान गैर-ऋणात्मक शक्ति होती है। प्रत्येक स्टेशन अपने पड़ोसी स्टेशनों की विकिरण शक्ति को निम्न प्रकार से बढ़ा सकता है।

मान लीजिए कि स्टेशन i विकिरण शक्ति R के साथ, (i - 1)वें स्टेशन की विकिरण शक्ति, R-1, (i - 2)वें स्टेशन की विकिरण शक्ति R-2 से बढ़ा देगा, और (i + 1)वें स्टेशन की वृद्धि करेगा विकिरण शक्ति, R-1 द्वारा, (i + 2)वें स्टेशन की विकिरण शक्ति R-2 द्वारा। जल्दी। तो उदाहरण के लिए, यदि सरणी Arr =[1, 2, 3] की तरह है, तो आउटपुट 3, 4, 4 होगा। नया विकिरण [1 + (2 - 1) + (3 - 2) होगा, 2 + (1 - 1) + (3 - 1), 3 + (2 - 1)] =[3, 4, 4]

विचार सरल है। प्रत्येक स्टेशन के लिए मैं ऊपर बताए अनुसार पड़ोसी स्टेशनों के विकिरण को तब तक बढ़ाता हूं, जब तक प्रभावी विकिरण नकारात्मक हो जाता है।

उदाहरण

#include <iostream>
using namespace std;
class pump {
   public:
   int petrol;
   int distance;
};
int findStartIndex(pump pumpQueue[], int n) {
   int start_point = 0;
   int end_point = 1;
   int curr_petrol = pumpQueue[start_point].petrol - pumpQueue[start_point].distance;
   while (end_point != start_point || curr_petrol < 0) {
      while (curr_petrol < 0 && start_point != end_point) {
         curr_petrol -= pumpQueue[start_point].petrol - pumpQueue[start_point].distance;
         start_point = (start_point + 1) % n;
         if (start_point == 0)
         return -1;
      }
      curr_petrol += pumpQueue[end_point].petrol - pumpQueue[end_point].distance;
      end_point = (end_point + 1) % n;
   }
   return start_point;
}
int main() {
   pump PumpArray[] = {{4, 6}, {6, 5}, {7, 3}, {4, 5}};
   int n = sizeof(PumpArray)/sizeof(PumpArray[0]);
   int start = findStartIndex(PumpArray, n);
   if(start == -1)
      cout<<"No solution";
   else
      cout<<"Index of first petrol pump : "<<start;
}

आउटपुट

Index of first petrol pump : 1

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

    मान लीजिए कि हमारे पास दो संख्याएँ l और r हैं। हमें एक पूर्णांक x ज्ञात करना है, जो l और r (दोनों सम्मिलित) के बीच में हो और x के सभी अंक अलग-अलग हों। तो, अगर इनपुट की तरह है l =211; r =230, तो आउटपुट 213 होगा। कदम इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - for initialize k := l, when k <

  1. C++ में प्रत्येक कार्तीय निर्देशांक को जोड़ने के लिए न्यूनतम लागत ज्ञात करने का कार्यक्रम

    मान लीजिए कि हमारे पास 2D कार्टेशियन निर्देशांक बिंदुओं (x, y) की एक सूची है। हम (x0, y0) और (x1, y1) को जोड़ सकते हैं, जिसकी लागत |x0 - x1| + |y0 - y1|। यदि हमें किसी भी संख्या में बिंदुओं को जोड़ने की अनुमति दी जाती है, तो हमें आवश्यक न्यूनतम लागत का पता लगाना होगा जैसे कि प्रत्येक बिंदु एक पथ से

  1. सी ++ प्रोग्राम में बाइनरी सर्च?

    द्विआधारी खोज, जिसे अर्ध-अंतराल खोज, लॉगरिदमिक खोज या बाइनरी चॉप के रूप में भी जाना जाता है, एक खोज एल्गोरिथ्म है जो एक क्रमबद्ध सरणी के भीतर लक्ष्य मान की स्थिति का पता लगाता है। बाइनरी खोज लक्ष्य मान की तुलना सरणी के मध्य तत्व से करती है। यदि वे समान नहीं हैं, तो आधा जिसमें लक्ष्य झूठ नहीं बोल सकत