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

न्यूनतम प्लेटफॉर्म समस्या


आगमन और प्रस्थान समय की एक सूची दी गई है। अब समस्या यह है कि रेलवे के लिए न्यूनतम संख्या में प्लेटफॉर्म ढूंढे जाएं ताकि कोई ट्रेन इंतजार न करे।

सभी समय को क्रमबद्ध क्रम में सॉर्ट करके, हम आसानी से समाधान ढूंढ सकते हैं, इससे यह ट्रैक करना आसान होगा कि ट्रेन आ गई है लेकिन स्टेशन नहीं छोड़ी है।

इस समस्या की समय जटिलता O(n Log n) है।

इनपुट और आउटपुट

इनपुट: आगमन समय और प्रस्थान समय की सूचियां। आगमन: {900, 940, 950, 1100, 1500, 1800} प्रस्थान: {910, 1200, 1120, 1130, 1900, 2000} आउटपुट: आवश्यक न्यूनतम प्लेटफॉर्म की संख्या: 3

एल्गोरिदम

minPlatform(arrival, departure, int n)

इनपुट - आगमन समय और प्रस्थान समय की सूची, और सूची में आइटम्स की संख्या

आउटपुट - समस्या हल करने के लिए आवश्यक न्यूनतम प्लेटफॉर्म की संख्या

Begin 
  sort arrival time list, and departure time list 
  platform := 1 and minPlatform := 1 
  i := 1 and j := 0 
  for elements in arrival list 'i' and departure list 'j' do 
    if arrival[i] < departure[j] then 
      platform := platform + 1 
      i := i+1 
      if platform > minPlatform then 
        minPlatform := platform 
    else 
      platform := platform – 1 
      j := j + 1 
  done 
  return minPlatform 
End

उदाहरण

#include<iostream> #include<algorithm> using namespace std; int minPlatform(int arrival[], int departure[], int n) { sort(arrival, arrival+n); //sort arrival and departure times sort(departure, departure+n); int platform = 1, minPlatform = 1; int i = 1, j = 0; while (i < n && j < n) { if (arrival[i] < departure[j]) { platform++; //platform added i++; if (platform > minPlatform) //if platform value is greater, update minPlatform minPlatform = platform; } else { platform--; //delete platform j++; } } return minPlatform; } int main() { int arrival[] = {900, 940, 950, 1100, 1500, 1800}; int departure[] = {910, 1200, 1120, 1130, 1900, 2000}; int n = 6; cout << "Minimum Number of Platforms Required: " << minPlatform(arrival, departure, n); }

आउटपुट

Minimum Number of Platforms Required: 3
  1. - C++ में रेलवे स्टेशन के लिए आवश्यक न्यूनतम प्लेटफॉर्म की संख्या

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

  1. - C++ में न्यूनतम पृष्ठों का आवंटन

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

  1. - जावा में न्यूनतम बमों की संख्या

    समस्या कथन यहां एक इमारत के कमरों में गुंडों को न्यूनतम बमबारी से मारने का है। कमरे 1 से n तक लेबल किए गए हैं। गुंडे पहले बमबारी हमले से घायल होते हैं और दूसरे में मर जाते हैं। जब कमरों पर बमबारी की जाती है तो गुंडे इमारत में निकटतम कमरे में विशेष रूप से पड़ोसी कमरे में भागते हैं। हमें इमारत में सभी