पुस्तक के बारे में जानकारी संग्रहीत करने के लिए Book क्लास लागू करें: शीर्षक (स्ट्रिंग), लेखक (स्ट्रिंग), प्रकाशन वर्ष (पूर्णांक) और स्थिति (उपलब्ध या जारी, बूलियन मान)। क्लास में सभी फ़ील्ड को आरंभ करने के लिए एक कंस्ट्रक्टर होना चाहिए, साथ ही विधियाँ: स्थिति बदलने के लिए setStatus(bool), पुस्तक के बारे में पूर्ण जानकारी के साथ एक स्ट्रिंग लौटाने के लिए getInfo()। मुख्य में पुस्तकों की एक सरणी (अधिकतम 100) बनाएँ, इसे इनपुट फ़ाइल के डेटा से भरें और कमांड को संसाधित करें। इनपुट में पहले एक संख्या N दी जाती है — पुस्तकों की संख्या, फिर डेटा के साथ N पंक्तियाँ: शीर्षक लेखक वर्ष_प्रकाशन स्थिति (0 — उपलब्ध, 1 — जारी)। इसके बाद एक कमांड दी जाती है: 'print_all' — सभी पुस्तकों के बारे में जानकारी प्रदर्शित करें; 'print_available' — केवल उपलब्ध पुस्तकें प्रदर्शित करें; 'borrow <शीर्षक>' — निर्दिष्ट शीर्षक वाली पुस्तक की स्थिति को 'जारी' में बदलें (यदि पुस्तक नहीं मिलती है या पहले से जारी है, तो उपयुक्त संदेश प्रदर्शित करें)।
इनपुट प्रारूप
पहली पंक्ति: एक पूर्णांक संख्या N (1 ≤ N ≤ 100)। फिर N पंक्तियाँ: शीर्षक (बिना रिक्त स्थान वाली स्ट्रिंग), लेखक (बिना रिक्त स्थान वाली स्ट्रिंग), वर्ष (पूर्णांक), स्थिति (0 या 1)। फिर एक कमांड वाली पंक्ति (वर्णित कमांड में से एक)।
आउटपुट प्रारूप
'print_all' और 'print_available' कमांड के लिए — प्रत्येक पुस्तक के बारे में जानकारी इस प्रारूप में प्रदर्शित करें: "शीर्षक: <शीर्षक>, लेखक: <लेखक>, वर्ष: <वर्ष>, स्थिति: <उपलब्ध/जारी>" (प्रत्येक पुस्तक एक नई पंक्ति पर)। 'borrow' कमांड के लिए — यदि पुस्तक मिलती है और उपलब्ध है, तो "पुस्तक '<शीर्षक>' जारी की गई।" प्रदर्शित करें और स्थिति बदलें; यदि नहीं मिलती है — "पुस्तक '<शीर्षक>' नहीं मिली।"; यदि पहले से जारी है — "पुस्तक '<शीर्षक>' पहले से जारी है।"
उदाहरण
उदाहरण 1
इनपुट
2
A B 1999 1
C D 2005 0
print_available
आउटपुट
Название: C, Автор: D, Год: 2005, Статус: доступна
उदाहरण 2
इनपुट
1
X Y 2022 0
borrow X
उदाहरण 3
इनपुट
Война и мир,Роман
Преступление и наказание,Роман
1984,Антиутопия
Мастер и Маргарита,Роман
आउटपुट
Роман: 3
Антиутопия: 1