# include
<
stdio.h
>
char s[ 20001 ],maxwords[ 2001 ];
int maxlen = 0 ,len;
int right ( int i)
{
if (((s[i] <= ' Z ' ) && (s[i] >= ' A ' )) || ((s[i] <= ' z ' ) && (s[i] >= ' a ' )))
return ( 1 );
return ( 0 );
}
int copy( int lx, int rx)
{
int i,j;
for (i = lx,j = 0 ;i <= rx;i ++ ,j ++ )
maxwords[j] = s[i];
maxwords[j] = ' \0 ' ;
return ( 0 );
}
int wordcmp ( int x, int y)
{
if (s[x] == s[y]) return ( 1 );
if (s[x] - s[y] == 32 ) return ( 1 );
if (s[y] - s[x] == 32 ) return ( 1 );
return ( 0 );
}
int huiwen ( int lx, int rx)
{
int i,j,total;
i = lx,j = rx;
if (i == j) total =- 1 ;
else total = 0 ;
while (i >= 0 && j <= len)
{
for (;i >= 0 &&! right(i);i -- );
for (;j <= len &&! right(j);j ++ );
if ( ! wordcmp(i,j))
{
if (total > maxlen)
{
maxlen = total;
j -- ;
for (i ++ ; ! right(i);i ++ );
i -- ;
copy(i,j);
}
return ( 0 );
}
total += 2 ;
if (total > maxlen)
{
maxlen = total;
copy(i,j);
}
i -- ;
j ++ ;
}
return ( 0 );
}
main ()
{
FILE * in = fopen ( " calfflac.in " , " r " );
FILE * out = fopen( " calfflac.out " , " w " );
int i,j;
for (i = 0 ; ! feof( in );i ++ )
s[i] = fgetc( in );
s[i] = ' \0 ' ;
len = strlen(s);
for (i = 0 ;i < len;i ++ )
{
if (right(i))
{
huiwen (i,i);
for (j = i - 1 ;j >- 0 &&! right(j);j -- );
if (j >= 0 ) huiwen(j,i);
for (j = i + 1 ;j <= len &&! right(j);j ++ );
if (j <= len) huiwen (i,j);
}
}
fprintf ( out , " %d\n%s\n " ,maxlen,maxwords);
fclose( in );
fclose( out );
exit( 0 );
}
char s[ 20001 ],maxwords[ 2001 ];
int maxlen = 0 ,len;
int right ( int i)
{
if (((s[i] <= ' Z ' ) && (s[i] >= ' A ' )) || ((s[i] <= ' z ' ) && (s[i] >= ' a ' )))
return ( 1 );
return ( 0 );
}
int copy( int lx, int rx)
{
int i,j;
for (i = lx,j = 0 ;i <= rx;i ++ ,j ++ )
maxwords[j] = s[i];
maxwords[j] = ' \0 ' ;
return ( 0 );
}
int wordcmp ( int x, int y)
{
if (s[x] == s[y]) return ( 1 );
if (s[x] - s[y] == 32 ) return ( 1 );
if (s[y] - s[x] == 32 ) return ( 1 );
return ( 0 );
}
int huiwen ( int lx, int rx)
{
int i,j,total;
i = lx,j = rx;
if (i == j) total =- 1 ;
else total = 0 ;
while (i >= 0 && j <= len)
{
for (;i >= 0 &&! right(i);i -- );
for (;j <= len &&! right(j);j ++ );
if ( ! wordcmp(i,j))
{
if (total > maxlen)
{
maxlen = total;
j -- ;
for (i ++ ; ! right(i);i ++ );
i -- ;
copy(i,j);
}
return ( 0 );
}
total += 2 ;
if (total > maxlen)
{
maxlen = total;
copy(i,j);
}
i -- ;
j ++ ;
}
return ( 0 );
}
main ()
{
FILE * in = fopen ( " calfflac.in " , " r " );
FILE * out = fopen( " calfflac.out " , " w " );
int i,j;
for (i = 0 ; ! feof( in );i ++ )
s[i] = fgetc( in );
s[i] = ' \0 ' ;
len = strlen(s);
for (i = 0 ;i < len;i ++ )
{
if (right(i))
{
huiwen (i,i);
for (j = i - 1 ;j >- 0 &&! right(j);j -- );
if (j >= 0 ) huiwen(j,i);
for (j = i + 1 ;j <= len &&! right(j);j ++ );
if (j <= len) huiwen (i,j);
}
}
fprintf ( out , " %d\n%s\n " ,maxlen,maxwords);
fclose( in );
fclose( out );
exit( 0 );
}