Pagini recente » Cod sursa (job #3265511) | Cod sursa (job #2343833) | Cod sursa (job #567742) | Cod sursa (job #843777) | Cod sursa (job #3214193)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("3secv.in");
ofstream fout("3secv.out");
#define NMAX 1000001
int a[NMAX];
bool isSeqValid(int start, int end)
{
if(end - start < 2) return true;
int dist[3];
dist[0] = a[start];
dist[1] = a[start + 1];
dist[2] = a[start + 2];
for(int i = start + 3; i < end; i++)
{
if(a[i] != dist[0] && a[i] != dist[1] && a[i] != dist[2])
{
return false;
}
}
}
int longestSequence(int a[], int n)
{
int len_max = 0;
int start = 0;
int end = start + 1;
while(1)
{
if(isSeqValid(start, end) == true)
{
len_max = max(len_max, end - start + 1);
if(end == n - 1) break;
end++;
}
else
{
if(start == n - 1) break;
start++;
}
//if(end <= start) break;
}
return len_max;
}
int main()
{
int t;
fin >> t;
for(int i = 1; i <= t; i++)
{
int n;
fin >> n;
for(int j = 0; j < n; j++) fin >> a[j];
fout << longestSequence(a, n) << '\n';
memset(a, 0, sizeof(a));
}
return 0;
}