Pagini recente » Cod sursa (job #2502180) | Cod sursa (job #1249936) | Cod sursa (job #2718364) | Cod sursa (job #962847) | Cod sursa (job #635530)
Cod sursa(job #635530)
#include <iostream>
#include <fstream>
#include <string.h>
#define N 500
using namespace std;
ifstream f("palm.in");
ofstream g("palm.out");
int main() {
char s[N];
int o[N]={0},r[N]={0},n,i,temp,j,max=0,len,p;
f>>s;
n=strlen(s)-1;
o[0]=1,r[n]=1;
for(i=1;i<=n;i++) {
temp=s[i]-s[i-1];
if(0 == temp || 1 == temp) {
o[i]+=o[i-1]+1;
} else {
o[i]=1;
}
temp=s[n-i]-s[n-i+1];
if(0 == temp || 1 == temp) {
r[n-i]+=r[n-i+1]+1;
} else {
r[n-i]=1;
}
}
for(i=1;i<=n;i++) {
if(o[i-1] == r[i+1]) {
len=2*r[i+1]+1;
p=1;
if(max < len) {
for(j=1;j<=r[i+1];j++) {
if(s[i+j]!=s[i-j]) {
p=0;
break;
}
if(p) {
max=len;
}
}
}
}
}
g<<max;
f.close();
g.close();
return 0;
}