uva 11151
#include<stdio.h>
#include<string.h>
#define N 1010
int dp[N][N],n;
char a[N];
int min(int a,int b,int c)
{
if(a<=b&&a<=c)
return a;
if(b<=a&&b<=c)
return b;
if(c<=a&&c<=b)
return c;
}
int main()
{
int i,j,k,l,t;
scanf("%d",&l);
t=1;
while(l--)
{
scanf("%s",&a);
memset(dp,0,sizeof(dp));
k=strlen(a);
for(i=k-2;i>=0;i--)
{
for(j=i+1;j<k;j++)
{
if(a[i]==a[j])
dp[i][j]=dp[i+1][j-1];
else
dp[i][j]=min(dp[i+1][j],dp[i][j-1],dp[i+1][j-1])+1;
}
}
printf("Case %d: %d\n",t++,dp[0][k-1]);
}
return 0;
}