Cod sursa(job #635530)

Utilizator cosminx2003Cosmin Clapon cosminx2003 Data 19 noiembrie 2011 12:51:21
Problema PalM Scor 20
Compilator cpp Status done
Runda .com 2011 Marime 0.75 kb
#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;
}