Cod sursa(job #636648)

Utilizator gramatovici_paulGramatovici Paul gramatovici_paul Data 19 noiembrie 2011 22:12:08
Problema PalM Scor 30
Compilator cpp Status done
Runda .com 2011 Marime 0.78 kb
#include <iostream>
#include <fstream>
#include <cstring>

using namespace std;

ifstream in("palm.in");
ofstream out("palm.out");

char s[1000];


bool palindrom(int x,int y)
{
    for(int i=x;i<=y;++i)
        if(s[i]!=s[y-i+x])
            return false;
    return true;
}

bool munte(int x, int y)
{
    int i;
    for(i=x;i<=y && s[i]<=s[i+1];++i);
    for(;i<y;++i)
        if(s[i]<s[i+1])
            return false;
    return true;

}

int main()
{
    int d=0,c=0,i,j,max=0,len;
    in.getline(s+1,1000);
    len=strlen(s+1);
    s[len+1]=s[0]='z'+1;

    for(i=1;i<=len;++i)
    {
        for(j=i+max;j<=len;++j)
        {
            if(palindrom(i,j) && munte(i,j))
                max=j-i+1;
        }
    }
    out<<max;
    return 0;
}