WA in SPOJ question GCPC11F

I’m getting WA again and again in the SPOJ question GCPC11F at jugde 6. Can anyone can tell me which testcase I am getting wrong? Even a hint will help.

Question Link: http://www.spoj.com/problems/GCPC11F/


Here in my Code:
#include<cstdio>
#include<cstring>
#include<cstdlib>

int compare (const void * a, const void * b)
{
  return ( *(int*)a - *(int*)b );
}


int main()
{
	int t,al[26],i,d,len,max,sl[26];
	char s[1024];
	
	scanf("%d",&t);
	while(t--)
	{
		fflush(stdin);
		gets(s);
		
		for(i=0;i<26;i++)
		al[i]=0;
		
		len=strlen(s);
		
		for(i=0;i<len;i++)
		{
			if(s[i]!=' ')
			al[s[i]-'A']++;
		}
		
		for(i=0;i<26;i++)
		sl[i]=al[i];
	
		
		qsort(al,26,sizeof(int),compare);
		
		if(al[24]==al[25])
		{
			printf("NOT POSSIBLE\n");
			continue;
		}
		
		
		for(i=0;i<26;i++)
		{
			if(sl[i]==al[25])
			{
				max=i;
				break;
			}
		}
		
		d=max+'A'-'E';
		
		if(d<0)
		d+=26;
	
		
		printf("%d ",d);
		
		if(d==0)
		{
			for(i=0;i<len;i++)
			printf("%c",s[i]);
			printf("\n");
			continue;
		}
		
		for(i=0;i<len;i++)
		{
			if(s[i]==' ')
			{
				printf("%c",s[i]);
				continue;
			}
			if(s[i]-'A'-d<0)
			s[i]=s[i]-d-'A'+'Z'+1;
			else
			s[i]=s[i]-d;
			
			printf("%c",s[i]);
			
		}
		printf("\n");
		
	}
	return 0;
}