Given an input array, the output must be the length of the longest arithmetic subarray of the given array.
I am getting a different output other than the desired one. I don't understand where I went wrong, I'm still a beginner so please ignore the rookie mistakes and kindly help me out wherever I'm wrong. Thanks in advance.
Here's the code:
#include <iostream>
using namespace std;
int main () {
    int n;
    cin>>n;
    int array[n];
    for (int i=0;i<n;i++)
  {
        cin>>array[i];
    }
    
    int length = 2;
    int cd = array[1] - array[0];
    for(int i=2; i<n; i++){
        if(array[i] - array[i-1] == cd){
            length++;
        }
        else {
            cd = array[i] - array[i-1];
            length=2;
        }
        cout<<length<<" ";
    }
    return 0;
}
 
     
     
    