Pagini recente » Cod sursa (job #1132055) | Cod sursa (job #564439) | Cod sursa (job #998229) | Cod sursa (job #2727446) | Cod sursa (job #635415)
Cod sursa(job #635415)
#include <fstream>
#include <cstring>
#define NMAX 505
#define in "palm.in"
#define out "palm.out"
using namespace std;
char sir[NMAX];
int maxim = 0,lg;
ifstream fin(in);
ofstream fout(out);
inline int isPal(int i,int j,int ans)
{
int val = ans;
while(i >= 0 && j < lg && sir[i] < sir[i + 1] && sir[j] < sir[j - 1] && sir[i] == sir[j])
val += 2, i--, j++;
return val;
}
int main()
{
fin.get(sir,NMAX,'\n');
fin.get();
int i = 0,val,poz;
lg = strlen(sir);
for(i = 1; i < lg - 1; i++)
{
if(sir[i-1] == sir[i])
{
val = isPal(i-2,i+1,2);
if(val > maxim)
maxim = val,poz = i;
}
if(sir[i] == sir[i+1])
{
val = isPal(i-1,i+2,2);
if(val > maxim)
maxim = val,poz = i;
}
val = isPal(i-1,i+1,1);
if (val > maxim)
maxim = val,poz = i;
}
fout<<maxim<<'\n';//<<poz<<'\n'<<sir[poz]<<'\n';
fin.close();
fout.close();
return 0;
}