# how can i get the longest sequence of increasing numbers from a vector in c++?

I have this sequence of numbers stored in a vector: 4 7 2 6 5 1 3.
In this case, the longest sequence will be: 1,3,4,7. That’s 4 numbers.
I only need to get the value of the longest increasing sequence(in this case 4).

I have this code:

``````
using namespace std;
ifstream f("roboti2.in");
ofstream g("roboti2.out");

int main()
{
int cerinta, n;
int v;
f>>cerinta>>n;

if(cerinta==1)
{
int l=1;
int maxl = 1;
for(int i=0; i<=n;i++)
{
f>>v[i];
}
for(int i=1; i<=n; i++)
{
if(v[i] > v[i-1])
{
l++;
if (l > maxl)
{
maxl = l;
}

}
else
{
l=1;
}
}
g<<maxl;

}
return 0;
}
``````

But it shows that it’s 2. It does not take the numbers at the end(1, 3) and 4,7.

Thanks!

### >Solution :

To consider this kind of warp from the end to the beginning, an easy way is duplicating the array after the original array and also check the second array.

``````for(int i=0; i<=n;i++)
{
f>>v[i];
}
// add this to duplicate the array
// (assuming v .. v[n] is what to consider
for(int i=0; i<=n; i++)
{
v[n+i+1] = v[i];
}
n += n + 1;
``````

The size of array `v` should be increased to store the duplicate part if needed.