Pagini recente » Cod sursa (job #534797) | Cod sursa (job #2813807) | Cod sursa (job #1225438) | Cod sursa (job #1850568) | Cod sursa (job #635938)
Cod sursa(job #635938)
# include <cstdio>
# include <string>
using namespace std;
char text[1000005];
int pozi, pozf, ct, maxi, maxf;
int main()
{int i, j, ok;
freopen("palm.in","r",stdin);
freopen("palm.out","w",stdout);
gets(text);
for (i = 0; i < strlen(text); i++)
{
ct = 0;
for (j = strlen(text) - 1; j >= (strlen(text) - 1) / 2; j--)
if (text[i + ct] == text[j])
{
if (text[i + ct] <= text[i + ct + 1] && text[j] <= text[j - 1])
{
ct++;
if (ok == 0 && j - i > pozf - pozi)
{
pozi = i; pozf = j; ok = 1;
}
if (pozf - pozi > maxf - maxi)
{
maxi = pozi;
maxf = pozf;
}
}
else
{
pozi = 0; pozf = 0; ok = 0;
}
}
else
{
pozi = 0; pozf = 0; ok = 0;
}
}
//for (i = maxi; i <= maxf; i++)
//printf("%c",text[i]);
printf("%d",maxf - maxi + 1);
return 0;
}