Problem

5 /7


रेस्टोरेंट

Theory Click to read/hide

अस्वीकरण: नीचे वर्णित विधि सार्वभौमिक नहीं है, लेकिन यह अक्सर समस्या का समाधान कर सकती है या आपको सही समाधान तक पहुंचने में मदद कर सकती है।

यदि कुछ अक्ष (आमतौर पर समय अक्ष या किसी सरणी के सूचकांक) पर स्थित अंतराल का एक सेट है और आपको उनमें से कुछ को इष्टतम तरीके से चुनने की आवश्यकता है ताकि चयनित अंतराल प्रतिच्छेद न करें, तो आपको गतिशील प्रोग्रामिंग का उपयोग करने का प्रयास करना चाहिए

अनुमानित समाधान योजना:

प्रारंभ में, हम उपलब्ध अंतराल को सही सीमा के अनुसार क्रमबद्ध करते हैं। आइए निम्नलिखित गतिशीलता शुरू करें: dp[i] - पहले i अंतराल के लिए उत्तर। 
हम निम्नानुसार पुनर्गणना करेंगे: पहले, इस स्थिति पर विचार करें कि इस अंतराल का उपयोग नहीं किया जाएगा, फिर बस dp[i] = dp[i-1]। ध्यान दें कि यह सुनिश्चित करता है कि जैसे-जैसे i बढ़ता है dp[i] का मान घटता नहीं है। और यह तार्किक है, क्योंकि। एक नया अंतर जोड़कर, हम वैश्विक उत्तर को खराब नहीं कर सकते: या तो हम नए अंतर को अनदेखा कर देते हैं, या हम इसका उपयोग करके एक अधिक लाभदायक संस्करण का निर्माण करते हैं। अब, यदि हम i-th गैप का उपयोग करना चाहते हैं, तो हम उन गैप्स का उपयोग कर सकते हैं, जिनकी दाहिनी सीमाएँ वर्तमान गैप की बाईं सीमा से कम हैं, क्योंकि हमें नॉन-ओवरलैपिंग गैप का एक सेट चुनना होगा। ऐसा करने के लिए, हमने शुरू में अंतराल को सही सीमा से क्रमबद्ध किया, ताकि अब हम आवश्यक स्थिति को कुशलतापूर्वक ढूंढ सकें। यदि संभव हो तो यह विश्लेषणात्मक रूप से किया जा सकता है, लेकिन सामान्य मामले में एक बिनसर्च के साथ एक अंतर खोजना संभव है, जिसकी दाहिनी सीमा वर्तमान की बाईं सीमा से कम है और साथ ही, अधिकतम संभव एक। हम लालची कारणों से सही सीमा को अधिकतम करना चाहते हैं, क्योंकि जैसे-जैसे मैं बढ़ता हूं, उत्तर केवल बढ़ सकता है। तदनुसार, हम आवश्यक स्थिति p पाते हैं और dp[i] को dp[p] और i-th अंतराल के माध्यम से पुनर्गणना करते हैं।

Problem

रेस्तरां को भोज के लिए n आदेश प्राप्त हुए। प्रत्येक क्रम को दो मानों द्वारा चित्रित किया जाता है: भोज का प्रारंभ समय li और समाप्ति समय ri (li ≤  r i).

रेस्तरां प्रबंधन या तो आदेश को स्वीकार कर सकता है या इसे अस्वीकार कर सकता है। अधिकतम कितने ऑर्डर स्वीकार किए जा सकते हैं?

कोई भी दो स्वीकृत आदेश प्रतिच्छेद नहीं कर सकते हैं, अर्थात्, ऐसा समय नहीं होना चाहिए जो एक बार में दो स्वीकृत आदेशों से संबंधित हो। यदि कोई एक आदेश उसी समय शुरू होता है जब दूसरा समाप्त होता है, तो उन्हें एक साथ स्वीकार नहीं किया जा सकता है।

इनपुट:
पहली पंक्ति में एक पूर्णांक n (1 ≤ n ≤ 200000) — आदेशों की संख्या। अगली n पंक्तियों में से प्रत्येक में पूर्णांक li, ri (0 ≤ li  &le ; ri ≤ 109).

आउटपुट:
स्वीकार किए जा सकने वाले आदेशों की अधिकतम संख्या प्रिंट करें।

उदाहरण:
  <तालिका सीमा = "1" सेलपैडिंग = "1" सेलस्पेसिंग = "1" शैली = "चौड़ाई: 500 पीएक्स;"> <शरीर> इनपुट आउटपुट 2
7 11
4 7 1 5
1 2
23
34
4 5
5 6 3 6
48
15
47
25
1 3
68 2