3288 {
3289 if(arr.size() < 3) {
3290 return 0;
3291 }
3292 auto up_down = vector<int>(arr.size() - 1);
3293 for(int i = 0; i + 1 < arr.size(); i++) {
3294 if(arr[i] < arr[i + 1]) {
3295 up_down[i] = 1;
3296 } else if(arr[i] > arr[i + 1]) {
3297 up_down[i] = 0;
3298 } else {
3299 up_down[i] = 2;
3300 }
3301 }
3302 auto sector_size = vector<pair<int, int>>();
3303 int prev = up_down[0];
3304 int count = 1;
3305 for(int i = 1; i < up_down.size(); i++) {
3306 if(up_down[i] != prev) {
3307 sector_size.emplace_back(prev, count);
3308 count = 1;
3309 } else {
3310 count++;
3311 }
3312 prev = up_down[i];
3313 }
3314 sector_size.emplace_back(prev, count);
3315 if(sector_size.size() < 2) {
3316 return 0;
3317 }
3318 int maximum = 0;
3319 for(int i = 0; i + 1 < sector_size.size(); i++) {
3320 if(sector_size[i].first == 1 && sector_size[i + 1].first == 0) {
3321 maximum = max(maximum, sector_size[i].second + sector_size[i + 1].second + 1);
3322 }
3323 }
3324 return maximum;
3325 }