एल्गोरिथ्म्स और डेटा स्ट्रक्चर्स

ऑपरेटिंग सिस्टम डिज़ाइन करना

Linus Torvalds, Linux ऑपरेटिंग सिस्टम के निर्माता, ने आपके ऊपर इस ऑपरेटिंग सिस्टम के कोडबेस को बनाए रखने की ज़िम्मेदारी सौंप दी है। लेकिन चूंकि आपको नए-नए प्रयोग पसंद हैं, आपने तय किया है कि आप कुछ लोकप्रिय कमांड दोबारा लिखेंगे और इन्हें प्रोडक्शन में तैनात करेंगे।
notion image
इस सप्ताह आप pwd (print working directory) और cd (change directory) कमांड को नए सिरे से लिख रहे हैं। आप चाहते हैं कि ये कमांड उपयोगकर्ता के इनपुट के आधार पर काम करें:
  1. अगर उपयोगकर्ता pwd इनपुट करता है – प्रोग्राम को वर्तमान कार्यशील डायरेक्टरी (working directory) को प्रदर्शित करना चाहिए।
  1. अगर उपयोगकर्ता cd folder इनपुट करता है – तो प्रोग्राम को उस फोल्डर में जाना चाहिए:
      • If the folder is .. - it means that the program should move to the parent directory. So, if we’re at directory /usr/local/bin/, the program should move to /usr/local/.
      • If the folder is . - it means that the program should stay in the current directory.
      • If the folder starts with /, it means that the program should change the absolute path of the directory - not the relative. So, if we’re at directory /usr/local/bin/, and the input was cd /dev, the program should move to /dev/.
      • If the folder is a name (Latin letters or numbers) - the program should move to that directory relative to the current one. So, if we’re at directory /usr/local/bin/, and the input was cd ../lib, the program should move to /usr/local/lib/.
- अगर फोल्डर .. है – इसका मतलब है प्रोग्राम को पैरेंट डायरेक्टरी में जाना होगा। उदाहरण के लिए, अगर हम /usr/local/bin/ डायरेक्टरी में हैं, तो प्रोग्राम को /usr/local/ पर जाना होगा।

इनपुट

इनपुट की पहली पंक्ति में एक पूर्णांक n (1 ≤ n ≤ 100) होता है, जो कमांडों की संख्या दर्शाता है।
अगली n पंक्तियों में वे कमांड होते हैं। यह सुनिश्चित किया गया है कि हर कमांड की लंबाई 200 कैरेक्टर से ज़्यादा नहीं होगी।

आउटपुट

प्रोग्राम को सभी pwd कमांड के परिणाम एक-एक करके नई पंक्ति में प्रिंट करने चाहिए।

उदाहरण

इनपुट
आउटपुट
5 pwd cd usr/local/bin cd .. pwd cd /dev
/ /usr/local/
7 pwd cd /home/anna pwd cd .. pwd cd anna/../bob pwd
/ /home/anna/ /home/ /home/bob/
4 cd /usr/local pwd cd ../usr/local pwd
/usr/local/ /usr/usr/local/
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue