Palíndrom més llarg

Sigui nn un natural, sigui bb una base qualsevol, i sigui dm1dm2d1d0d_{m-1} d_{m-2} \ldots d_1 d_0 la representació de nn en base bb. Calculeu la subseqüència consecutiva didjd_i \ldots d_j més llarga que és un palíndrom (és a dir, un cap-i-cua).

Per exemple, per a n=5328486n = 5328486 en base b=10b = 10, el palíndrom més llarg és 848, identificat amb i=3i = 3 i j=1j = 1. Com un altre exemple, per a n=637402n = 637402 en base b=4b = 4, que es representa 2123213122, els palíndroms més llargs són 12321 i 21312, identificats respectivament amb i=8i = 8 i j=4j = 4, i amb i=5i = 5 i j=1j = 1.

Escriviu un procediment

    void palindrom_mes_llarg(int n, int b, int& i, int& j);

que deixi a @i@ i @j@ les posicions del palíndrom més llarg. En cas d’empat, cal retornar el palíndrom més a la dreta (o sigui, amb la @i@ i la @j@ més petites).

Precondició

Es compleix 11 \le @n@ 107\le 10^7, 22 \le @b@ 100\le 100, i que @n@ expressat en base @b@ no té cap dígit que sigui 0.

Observació

Només cal enviar el procediment demanat; el programa principal serà ignorat.

Observació

No podeu usar vectors o similars.

Informació del problema

Autoria: Salvador Roura

Generació: 2026-01-25T11:14:07.810Z

© Jutge.org, 2006–2026.
https://jutge.org