Pagini recente » Rezultatele filtrării | Borderou de evaluare (job #2695876) | Borderou de evaluare (job #1548045) | Istoria paginii utilizator/ale4jesus | Cod sursa (job #989626)
Cod sursa(job #989626)
#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;
}