एक शतरंज की बिसात पर जिसे 8 X 8 ग्रिड के रूप में दर्शाया गया है, हमें पंक्ति और स्तंभ स्थिति के रूप में बिशप का स्थान दिया गया है। लक्ष्य उन वर्गों की कुल संख्या का पता लगाना है जो बिशप एक चाल में देख सकते हैं। हम जानते हैं कि बिशप सभी दिशाओं में घूम सकता है (तिरछे बाएँ ऊपर/नीचे और दाएँ ऊपर/नीचे)।
उदाहरण के लिए
इनपुट
row = 5, column = 4
आउटपुट
Count of total number of squares that can be visited by Bishop in one move are: 13
स्पष्टीकरण
As shown in above figure the squares that Bishop can cover are 9.
इनपुट
row = 1, column = 1
आउटपुट
Count of total number of squares that can be visited by Bishop in one move are: 7
स्पष्टीकरण
As this is the corner most position, then Bishop can only cover one diagonal which can have a maximum of 7 squares.
नीचे दिए गए कार्यक्रम में उपयोग किया गया दृष्टिकोण इस प्रकार है -
इस दृष्टिकोण में हम क्षैतिज और लंबवत अधिकतम और न्यूनतम वर्ग स्थिति का उपयोग करके विकर्ण वर्गों की गणना करेंगे।
-
बिशप की स्थिति के लिए पूर्णांक पंक्ति और स्तंभ लें।
-
फंक्शन स्क्वेयर्स_विजिटेड (इंट फर्स्ट, इंट सेकेंड) बिशप का स्थान लेता है और उन वर्गों की संख्या लौटाता है जिन्हें वह एक चाल में देख सकता है।
-
प्रारंभिक गणना 0 के रूप में लें।
-
बाईं स्थिति की न्यूनतम पंक्ति या स्तंभ स्थिति -1 की न्यूनतम है।
-
बाईं ओर की अधिकतम स्थिति 8 - अधिकतम पंक्ति या 9-स्तंभ स्थिति है।
-
न्यूनतम सही स्थिति पंक्ति या 9−स्तंभ स्थिति -1 की न्यूनतम है।
-
अधिकतम सही स्थिति 8 है - अधिकतम पंक्ति या स्तंभ स्थिति।
-
कुल वर्ग उपरोक्त गणना की गई स्थितियों का योग होगा।
-
परिणाम के रूप में वापसी की गिनती।
उदाहरण
#include <bits/stdc++.h> using namespace std; int squares_visited(int first, int second){ int count = 0; int min_left = min(first, second) − 1; int max_left = 8 − max(first, 9 − second); int max_right = 8 − max(first, second); int min_right = min(first, 9 − second) − 1; count = min_left + min_right + max_right + max_left; return count; } int main(){ int row = 3, column = 3; cout<<"Count of total number of squares that can be visited by Bishop in one move are: "<<squares_visited(row, column); return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
Count of total number of squares that can be visited by Bishop in one move are: 11