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

Sea Battle (समुद्री युद्ध)

notion image
आप Sea Battle गेम के एक डेवलपर हैं। इस समय आपको गेम की एक बहुत ही महत्वपूर्ण सांख्यिकी को अपडेट करने की ज़िम्मेदारी दी गई है: दिए गए बोर्ड से आपको यह पता लगाना है कि बोर्ड पर कितने जहाज़ healthy, dead और wounded हैं। आपको मालूम है कि:
  • कोई भी दो जहाज़ अपनी किसी भुजा (side) से एक-दूसरे से जुड़े नहीं होते। अतः यदि किसी ग्रिड में दो आस-पड़ोस (adjacent) वाली कोशिकाएँ किसी जहाज़ का हिस्सा हों, तो वे एक ही जहाज़ से संबंधित हैं।
  • इस खेल में जहाज़ हमेशा सीधे (straight line) में नहीं होते। यह खेल का एक उन्नत रूप है, जो प्रीमियम उपयोगकर्ताओं के लिए उपलब्ध है।
  • अगर किसी जहाज़ पर अब तक कोई बम नहीं गिराया गया है, तो वह जहाज़ healthy है।
  • अगर जहाज़ की सभी कोशिकाओं पर बम गिराया जा चुका है, तो वह जहाज़ dead है।
  • अगर जहाज़ पर बम आंशिक रूप से गिरा है (अर्थात कुछ कोशिकाएँ बम से प्रभावित हैं और कुछ नहीं), तो वह जहाज़ wounded माना जाता है।
आपको एक प्रोग्राम लिखना है जो वर्तमान स्थिति वाले ग्रिड को लेकर healthy, dead और wounded जहाज़ों की संख्या बाध्यकारी रूप से प्रिंट करे।

Input (इनपुट)

इनपुट की पहली पंक्ति में दो चरित्र r और c (1 ≤ r, c ≤ 50) दिए होते हैं, जो ग्रिड की पंक्तियों (rows) और स्तंभों (columns) की संख्या दर्शाते हैं।
अगली r पंक्तियों में c कॉलम के अक्षर होते हैं, जो ग्रिड का प्रतिनिधित्व करते हैं:
  • . पानी को दर्शाता है (जहाँ कोई जहाज़ नहीं है)
  • s जहाज़ की एक सुरक्षित (healthy) कोशिका को दर्शाता है
  • b बम गिराई गई जहाज़ की कोशिका को दर्शाता है

Output (आउटपुट)

प्रोग्राम को 3 संख्याएँ प्रिंट करनी हैं—healthy, dead और wounded जहाज़ों की संख्या, इसी क्रम में।

Examples (उदाहरण)

Input

7 8
..s.bb.s
s.......
s.sssss.
b.s...s.
..sssbs.
s.......
ss......
Output

3 1 2
 

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