Pagini recente » Cod sursa (job #1880795) | Cod sursa (job #1778588) | Cod sursa (job #2700712) | Cod sursa (job #335472) | Cod sursa (job #638278)
Cod sursa(job #638278)
#include <fstream>
#include<cstring>
using namespace std;
ifstream in("palm.in");
ofstream out("palm.out");
char q[501];
int v[501];
int verif1(int i,int n)
{
int s=1,c=1;
if(v[i-1]>=v[i])
{
while(i+s<=n && i-s>=1)
{
if(v[i-s]>=v[i-s+1] && v[i+s]>=v[i+s-1] && v[i-s]==v[i+s])
c+=2;
s++;
}
}
if(v[i-1]<=v[i])
{
while(i+s<=n && i-s>=1)
{
if(v[i-s]<=v[i-s+1] && v[i+s]<=v[i+s-1] && v[i-s]==v[i+s])
c+=2;
s++;
}
}
return c;
}
int verif2(int i,int n)
{
int s=1,c=2;
if(v[i]!=v[i+1])
return 1;
if(v[i-1]>=v[i])
{
while(i+1+s<=n && i-s>=1)
{
if(v[i-s]>=v[i-s+1] && v[i+1+s]>=v[i+s] && v[i-s]==v[i+1+s])
c+=2;
s++;
}
}
if(v[i-1]<=v[i])
{
while(i+1+s<=n && i-s>=1)
{
if(v[i-s]<=v[i-s+1] && v[i+1+s]<=v[i+s] && v[i-s]==v[i+1+s])
c+=2;
s++;
}
}
return c;
}
int main()
{
int n,i,max=1,d;
in.getline(q,501);
n=strlen(q);
for(i=1;i<=n;i++)
v[i]=q[i-1]-'a'+1;
for(i=1;i<=n;i++)
{
d=verif1(i,n);
if(d>max)
max=d;
d=verif2(i,n);
if(d>max)
max=d;
}
out<<max<<'\n';
return 0;
}