Rene Čini mi se da bi moglo biti točno, ali nekako mi se ne sviđa ovo s kraj[i]=i+1
.
Što ti smeta s +_scanom?
Ovo je moje rješenje s google docsa:
isti[N-1] = {}
PARALELNO(i=0 DO n-2)
isti[i] = 0
PARALELNO(i=1 DO n-1)
AKO(P[i-1] == P[i])
isti[i-1] = 1
duljina = +_scan(isti[])
PARALENO(i=0 DO n-2)
AKO(isti[i] == 1)
duljina[i] = 0
duljina = max_scan(duljina[])
PARALENO(i=1 DO n-2)
AKO(isti[i] == 0)
isti[i] = duljina[i-1] - duljina[i]
duljina = +_scan(isti[])
najdulji = 1 + max_reduce(duljina[])
Primjer izvođenja:
isti[]= [0 1 0 0 0 1 1 0]
duljina[] = [0 1 1 1 1 2 3 3]
duljina[] = [0 0 1 1 1 0 0 3]
duljina[] = [0 0 1 1 1 1 1 3]
isti[] = [0 1 -1 0 0 1 1 -2]
duljina = [0 1 0 0 0 1 2 0]