**Problem Link** - Contest Page | CodeChef

**Author** - amarnathsama

**Tester** - amarnathsama

**Editorilist** - apurv001

IDEA

Find the maximum length of a substring of string s that starts with Z and ends with A.

This is the problem.

For simple consideration, it is best to use Z as close to the beginning as possible and B as late as possible.

For the case of -1

We just need to check 4 cases:

Case 1: If Z is not in the string

Case 2: If A is not in the string

Case 3: If both A and Z are not in the string

Case 4: If first occurrence of Z is after the last occurrence of A

You will find that it is best to choose one that is close to the tail. Each position can be checked with O (| s |)

## Code

```
#include <bits/stdc++.h>
using namespace std;
int main() {
cin.tie(nullptr);
ios_base::sync_with_stdio;
string s;
cin >> s;
int a = -1, z = -1;
for(int i = 0; i < s.size(); i++) {
if(s[i] == 'Z') {
z = i;
break;
}
}
for(int i = s.size() - 1; i >= 0; i--) {
if(s[i] == 'A') {
a = i;
break;
}
}
if(a - z <= 0 || a == -1 || z == -1) {
cout << -1;
}
else {
cout << a - z + 1;
}
return (0);
}
```