Cod sursa(job #635936)

Utilizator idomiralinIdomir Alin idomiralin Data 19 noiembrie 2011 15:45:32
Problema PalM Scor 0
Compilator cpp Status done
Runda .com 2011 Marime 1.18 kb
# 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;
}