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

C++ का उपयोग करने वाले रेलवे स्टेशन के लिए आवश्यक प्लेटफॉर्मों की न्यूनतम संख्या।

समस्या कथन

रेलवे स्टेशन पर पहुंचने वाली सभी ट्रेनों के आगमन और प्रस्थान के समय को देखते हुए, रेलवे स्टेशन के लिए आवश्यक न्यूनतम प्लेटफॉर्म खोजने का कार्य है ताकि कोई ट्रेन प्रतीक्षा न करे।

हमें दो सरणियाँ दी गई हैं जो रुकने वाली ट्रेनों के आगमन और प्रस्थान समय का प्रतिनिधित्व करती हैं।

नीचे दिए गए इनपुट के लिए, हमें कम से कम 3 प्लेटफॉर्म चाहिए -

ट्रेन आगमन समय प्रस्थान समय
ट्रेन-1 09:00 09:15
ट्रेन-2 09:35 11:45
ट्रेन-3 09:40 11:05
ट्रेन-4 11:00 12:00
ट्रेन-5 14:30 18:15
ट्रेन-6 18:00 19:00

एल्गोरिदम

1. Sort arrival and departure time arrays in ascending order
2. Trace the number of trains at any time keeping track of trains that haves arrived, but not departed

उदाहरण

#include <iostream>
#include <algorithm>
#define SIZE(arr) (sizeof(arr) / sizeof(arr[0]))
using namespace std;
int getPlatformCount(int *arrival, int *departure, int n){
   sort(arrival, arrival + n);
   sort(departure, departure + n);
   int platformCnt = 1;
   int result = 1;
   int i = 1;
   int j = 0;
   while (i < n && j < n) {
      if (arrival[i] <= departure[j]) {
         ++platformCnt;
         ++i;
         if (platformCnt > result) {
            result = platformCnt;
         }
      } else {
         --platformCnt;
         ++j;
      }
   }
   return result;
}
int main()
{
   int arrival[] = {900, 935, 940, 1100, 1430, 1800};
   int departure[] = {915, 1145, 1105, 1200, 1815, 1900};
   cout << "Minimum required platforms = " <<
   getPlatformCount(arrival, departure, SIZE(arrival)) << endl;
   return 0;
}

आउटपुट

जब आप उपरोक्त प्रोग्राम को संकलित और निष्पादित करते हैं। यह निम्न आउटपुट उत्पन्न करता है -

Minimum required platforms = 3

  1. C++ का उपयोग करके N को 25 से विभाज्य बनाने के लिए आवश्यक दी गई चालों की न्यूनतम संख्या।

    समस्या कथन बिना अग्रणी शून्य के एक संख्या N दी गई है। कार्य N को 25 से विभाज्य बनाने के लिए आवश्यक न्यूनतम चालों को खोजना है। प्रत्येक चाल पर, कोई भी दो आसन्न अंकों को स्वैप कर सकता है और यह सुनिश्चित कर सकता है कि किसी भी समय संख्या में कोई अग्रणी शून्य नहीं होना चाहिए। यदि N को 25 से विभाज्य बनान

  1. C++ का प्रयोग करते हुए संख्या के गुणनखंडों का न्यूनतम योग ज्ञात कीजिए।

    यहां हम देखेंगे कि किसी दी गई संख्या के कारकों का न्यूनतम योग कैसे प्राप्त करें। मान लीजिए एक संख्या 12 है। हम इसे अलग-अलग तरीकों से गुणनखंडित कर सकते हैं - 12 =12 * 1 (12 + 1 =13) 12 =2 * 6 (2 + 6 =8) 12 =3 * 4 (3 + 4 =7) 12 =2 * 2 * 3 (2 + 2 + 3 =7) न्यूनतम योग 7 है। हम एक संख्या लेंगे और न्यून

  1. C++ में पृष्ठों की न्यूनतम संख्या आवंटित करें

    पृष्ठों की न्यूनतम संख्या आवंटित करना एक प्रोग्रामिंग समस्या है। आइए इस समस्या पर विस्तार से चर्चा करें और देखें कि इसका समाधान क्या हो सकता है। बयान आपको n विभिन्न पुस्तकों के पृष्ठों की संख्या . दी गई है . साथ ही, मी छात्र . भी हैं जिन्हें किताबें सौंपी जानी हैं। पुस्तकों को पृष्ठों की संख्या के