10338 - Mischievous Children

#include<stdio.h>
#include<string.h>
long long int fact(long long int n)
{
    if(n<=1)
    {
        return 1;
    }
    else
    {
        return (n*fact(n-1));
    }
}
int main()
{
    long long int a,b,c,i,p,len,sum,test_case,arr[100],result;
    char str[21];
    scanf("%lld",&test_case);
    getchar();
    for(p=1;p<=test_case;p++)
    {
        memset(arr,0,sizeof(arr));
        scanf("%s",str);
        sum=1;
        len=strlen(str);
        b=fact(len);
        for(i=0;i<len;i++)
        {
            a=str[i];
            arr[a]++;
        }
        for(i=65;i<=90;i++)
        {
            if(arr[i]>=2)
            {
                c=fact(arr[i]);
                sum*=c;
            }
        }
        result=b/sum;
        printf("Data set %lld: %lld\n",p,result);
        memset(str,'\0',sizeof(str));
    }
    return 0;
}

0 comments: (+add yours?)