5664 vector<bool> pen(n);
5668 for(
int i = 0; i < n; i++) {
5669 pen[i] = str[i] ==
'1';
5678 vector<int> spaces2;
5679 vector<int> spaces1;
5687 spaces1.push_back(
left);
5690 while(!pen[
right]) {
5694 spaces1.push_back(n - 1 -
right);
5700 spaces2.push_back(current);
5706 sort(spaces2.begin(), spaces2.end());
5707 sort(spaces1.begin(), spaces1.end());
5708 if(!spaces2.empty()) {
5709 limit = *spaces2.begin();
5712 const int a = (*spaces2.rbegin() - 2) / 3;
5713 minimum = max(minimum, a);
5715 if(spaces2.size() > 1) {
5716 const int b = (spaces2[spaces2.size() - 2] - 1) / 2;
5717 minimum = max(minimum, b);
5720 if(!spaces1.empty()) {
5721 const int a = (*spaces2.rbegin() - 1) / 2;
5722 int b = *spaces1.rbegin() - 1;
5723 minimum = max(minimum, min(a, b));
5725 b = (*spaces1.rbegin() - 2) / 2;
5726 minimum = max(minimum, b);
5728 if(spaces1.size() > 1) {
5729 const int a = *spaces1.begin() - 1;
5730 minimum = max(minimum, a);
5735 if(spaces1.size() > 1) {
5736 const int a = *spaces1.begin() - 1;
5737 minimum = max(minimum, a);
5740 const int b = (*spaces1.rbegin() - 2) / 2;
5741 minimum = max(minimum, b);
5743 minimum = min(limit, minimum);
5744 cout << minimum + 1;