Prihlásenie Registrácia  

B - Prefixový sufix

Časový limit: 2s, Pamäťový limit: 64MiB

Programovacie jazyky: Pascal, C, C++, Java, C++0x, Python 3

Počet bodov: 1

[ Pošli riešenie ] [ Tvoje riešenia ] [ Správne riešenia ] [ Vzorové riešenie ]

Prefixovou podpostupnosťou zadanej postupnosti nazveme každú postupnosť, ktorá je tvorená prvými k číslami tejto postupnosti, no nie je to celá postupnosť. Napríklad pre postupnosť čísel 3 8 10 4 5 máme okrem prázdnej postupnosti tieto prefixové podpostupnosti:

  • 3
  • 3 8
  • 3 8 10
  • 3 8 10 4

Podobne môžeme definovať sufixovú podpostupnosť zadanej postupnosti. Tou nazveme každú súvislú podpostupnosť, ktorá je tvorená poslednými k číslami tejto postupnosti, no nie je to celá postupnosť. Napríklad pre postupnosť čísel 3 8 10 4 5 máme okrem prázdnej postupnosti tieto sufixové podpostupnosti:

  • 5
  • 4 5
  • 10 4 5
  • 8 10 4 5

Úloha

Vytvorte program, ktorý pre zadanú postupnosť čísel nájde dĺžku najdlhšej prefixovej podpostupnosti, ktorá je zároveň sufixovou podpostupnosťou zadanej postupnosti.

Vstup

Každý riadok vstupu obsahuje jednu postupnosť čísel. Jednotlivé čísla sú oddelené medzerami. Prvé číslo v riadku N (1 ≤ N ≤ 200) určuje počet čísel v postupnosti, za ním nasleduje N čísel postupnosti. Vstup je ukončený riadkom, v ktorom sa nachádza číslo -1.

Výstup

Výstupom je v každom riadku pre zadanú postupnosť vypočítaná maximálna dĺžka prefixovej podpostupnosti, ktorá je zároveň sufixovou podpostupnosťou.

Príklad

Vstup:

6 81 9 50 71 81 9
2 88 88
12 66 56 35 29 49 49 87 7 66 56 35 29
10 1 95 16 38 38 76 56 1 95 16
3 29 31 12
7 2 1 2 1 2 1 2
-1

Výstup:

2
1
4
3
0
5