# PBinfo #4458 – Secventa4 – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: deivid

## Enunț

Cerința
Se dă un șir cu n elemente, numere  naturale. Determinați cea mai lungă secvență de elemente din șir cu proprietatea că oricare două valori consecutive se termină cu aceeași cifră. 

Dacă există mai multe secvențe de lungime maximă cu această proprietate, se va determina cea mai din stânga.

Date de intrare
Fișierul de intrare secventa4.in conține pe prima linie numărul n; urmează cele n elemente ale șirului, care pot fi dispuse pe mai multe linii și separate prin spații.

Date de ieșire
Fișierul de ieșire secventa4.out va conține pe prima linie două numere p și u, separate printr-un spațiu, reprezentând indicele primului, respectiv al ultimului element din secvența determinată.

Restricții și precizări

1 ≤ n ≤ 100.000;
elementele șirului vor avea cel mult nouă cifre și sunt numerotate de la 1 la n;

Exemplu:
secventa4.in

10
25 41 31 651 74 52 2 522 80 10
secventa4.out

2 4
Explicație
Există două secvențe de elemente care respectă regula precizată de lungime maximă și s-a afișat secvența cea mai din stânga.

## Cod sursă C++

```cpp
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("secventa4.in");
ofstream fout("secventa4.out");
int n, A[100001];
int main()
{
	fin >> n;
	for(int i = 1; i <= n ; i ++)
		fin >> A[i];
	int st = 1 , dr = 0;
	for(int i = 1 ; i <= n ; i ++)
	{
		int j = i;
		while(j + 1 <= n && A[j] % 10 == A[j+1] % 10)
			j ++;
		if(j-i+1 > dr-st+1)
			st = i, dr = j;
		i = j;
	}
	fout << st << " " << dr;
	return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/4458)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/4458/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-4458/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
