Cod sursa(job #637469)

Utilizator BarracudaFMI-Alex Dobrin Barracuda Data 20 noiembrie 2011 14:37:20
Problema PalM Scor 30
Compilator cpp Status done
Runda .com 2011 Marime 0.81 kb
#include<stdio.h>
#include<string.h>
FILE*f=fopen("palm.in","r");
FILE*g=fopen("palm.out","w");
int n,i,m,rrr,y,v[1515],ok,p,max,h,u,viz;
char q[501];
int main (){
	fscanf(f,"%s",q);
	for(i=0;i<strlen(q)-2;i++){
		if(q[i]-96<=q[i+1]-96){
			p=i;
			h=0;
			y=0;
			ok=0;
			viz=0;
			while((q[p]-96<=q[p+1]-96)&&(p<strlen(q)-1)){
				p++;
				ok=1;
				if(q[p]-96==q[p+1]-96)
				    viz++;
			}
			y=p;
			while((q[y]-96>=q[y+1]-96)&&(y<strlen(q)-1)){
				y++;
				ok=2;
			}
			u=p;
			while((q[u]==q[u-1])&&(u>=i))
				u--;
			if(viz==y-i){
				rrr=viz+1;
				if(rrr>max)
					max=rrr;
			}
			else{
				rrr=y+1-i;
				if(rrr>max)
					max=rrr;
			}
			if((ok==2)&&(rrr>=max)&&(u-i==y-p)){
				if(rrr>max)
					max=rrr;
			}
			rrr=0;
		}
	}
	fprintf(g,"%d",max);
	return 0;
}