There's a problem, which I've to solve in c++. I've written the whole code and it's working in the given test cases but when I'm submitting it, It's saying wrong answer. I can't understand that why is it showing wrong answer. I request you to tell me an input for the given code, which will give incorrect output so I can modify my code further.
Shrink The Array
You are given an array of positive integers A[] of length L. If A[i] and A[i+1] both are equal replace them by one element with value A[i]+1. Find out the minimum possible length of the array after performing such operation any number of times.
Note: After each such operation, the length of the array will decrease by one and elements are renumerated accordingly.
Input format:
- The first line contains a single integer L, denoting the initial length of the arrayA.
- The second line contains Lspace integersA[i]− elements of arrayA[].
Output format:
- Print an integer - the minimum possible length you can get after performing the operation described above any number of times.
Example:
Input
7
3 3 4 4 4 3 3
Output
2
Sample test case explanation
3 3 4 4 4 3 3 -> 4 4 4 4 3 3 -> 4 4 4 4 4 -> 5 4 4 4 -> 5 5 4 -> 6 4.
Thus the length of the array is 2.
My code:
#include <bits/stdc++.h>
using namespace std;
int main()
{
  bool end = false;
  int l;
  cin >> l;
  int arr[l];
  for(int i = 0; i < l; i++){
    cin >> arr[i];
  }
  int len = l, i = 0;
  while(i < len - 1){
    if(arr[i] == arr[i + 1]){
        arr[i] = arr[i] + 1;
        if((i + 1) <= (len - 1)){
            for(int j = i + 1; j < len - 1; j++){
                arr[j] = arr[j + 1];
            }
        }
        len--;
        i = 0;
    }
    else{
        i++;
    }
  }
  cout << len;
  return 0;
}
THANK YOU
 
    