Cod sursa(job #989626)

Utilizator vendettaSalajan Razvan vendetta Data 26 august 2013 00:54:44
Problema PalM Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <set>
#include <queue>
#include <deque>

using namespace std;

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

#define nmax 501
#define ll long long
#define pb push_back
#define mp make_pair
#define sz size
#define x first
#define y second

string S;

void citeste(){
    getline(f, S);
}

inline int extinde(int st, int dr){
    int cnt = 0;
    for(int i=st, j=dr; i >= 0 && j < (int)S.sz(); --i, ++j){
        if (S[i] != S[j] ) return cnt*2;
        if (i == st){
            ++cnt; continue;
        }
        if ( S[i] > S[i+1] || S[j] > S[j-1]) return cnt*2;
        cnt++;
    }
    return cnt*2;
}

void rezolva(){
    int Rez = 0;
    for(int i=0; i<(int)S.sz(); ++i){
        Rez = max( Rez, extinde(i, i)-1 );
        if (i+1 < (int)S.sz() )Rez = max(Rez, extinde(i, i+1));
    }
    g << Rez << "\n";
}

int main(){
    citeste();
    rezolva();

    f.close();
    g.close();

    return 0;
}