একটি স্ট্রিং S (সাইজ n) এবং একটি সংখ্যা k দেওয়া আছে। স্ট্রিংয়ে ৪ টাইপ ক্যারেক্টার থাকে: '.' = খালি সেল, '#' = বাধা, 'G' = ঘাসফেরিঙ এর শুরুর পজিশন, 'T' = টার্গেট সেল। ঘাসফেরিঙ ঠিক k সেল দূরত্বে লাফালাফি করতে পারে। ঘাসফেরিঙ টার্গেটে পৌঁছাতে পারে কিনা তা যাচাই করতে হবে।
উদাহরণ
S = "#G#T#", k = 2 → আউটপুট: True
ব্যাখ্যা: G থেকে T-এর দূরত্ব ২ সেল, k=2, তাই এক লাফালাফিতে পৌঁছাবে।
সমাধানের ধাপসমূহ
n := S-এর সাইজ
x := S-এ 'G'-র পজিশন
y := S-এ 'T'-র পজিশন
if x > y: swap(x, y)
for i := x; i < y; i += k:
if S[i] == '#': break
if i == y: return true
else return false
সি++ কোড উদাহরণ
#include <bits/stdc++.h>
using namespace std;
bool solve(string S, int k) {
int n = S.size();
int x = S.find('G');
int y = S.find('T');
if (x > y) swap(x, y);
int i;
for (i = x; i < y; i += k) {
if (S[i] == '#') break;
}
return (i == y);
}
int main() {
string S = "#G#T#";
int k = 2;
cout << solve(S, k) << endl;
}
ইনপুট
"#G#T#", 2
আউটপুট
1