मान लीजिए, हमें एक ग्रिड दिया गया है जिसमें 2 पंक्तियां और n स्तंभ हैं। एक रोबोट ग्रिड में स्थिति (0, 0) पर है और अपनी वर्तमान स्थिति के आसन्न और कोने के सेल पर जाकर (1, n - 1) पर जाना चाहता है। हमें ग्रिड स्ट्रिंग्स की एक सरणी में दिया गया है, एक सेल ब्लॉक है यदि यह '#' से चिह्नित है और यह सुलभ है यदि यह '.' से चिह्नित है। हमें यह पता लगाना है कि रोबोट सेल (0, 0) से सेल (1, n - 1) पर जा सकता है या नहीं।
उदाहरण के लिए, यदि इनपुट n = 4, grid = {".##.", "...."} है, तो आउटपुट Possible होगा।
चरण
इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:
flag := 1 for initialize i := 0, when i < n, update (increase i by 1), do: if grid[0, i] is same as '#' and grid[1, i] is same as '#', then: flag := 0 if flag is same as 0, then: print("Not Possible.") Otherwise print("Possible.")उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
#includeusing namespace std; #define N 100 void solve(int n, string grid[]) { int flag = 1; for(int i = 0; i < n; i++){ if(grid[0].at(i) == '#' && grid[1].at(i) == '#'){ flag = 0; } } if (flag == 0) cout<<"Not Possible."; else cout<<"Possible."; } int main() { int n = 4; string grid[] = {".##.", "...."}; solve(n, grid); return 0; }
इनपुट
4, {".##.", "...."}आउटपुट
Possible.