import java.util.Arrays;
import java.util.Scanner;
/*
贪心算法:排序之后,重者先计算。
思路:
1.开一个整型数组,统计字母出现的次数,下标对应字母ASCII码
2.对字母出现次数排序
3.计算漂亮度
* */
public class Main {
public static void main(String[] args) {
//ASCLL码中a~z{97,122}转换{1~26}需要{97-96 ~ 122-96}
Scanner sc = new Scanner(System.in);
Integer N = sc.nextInt();
String[] str = new String[N];
sc.nextLine();//消除sc.nextInt()抛弃的 已经输入的Enter键值带来的影响。
for (int i = 0; i < N; i++) {
str[i]=sc.nextLine();
char[] charOne = str[i].toCharArray();
System.out.println(countChar(charOne));
}
}
//把字符出现次数进行统计
public static Integer countChar(char[] charOne){
//ASCLL码中a~z{97,122}转换{1~26}需要{97-96 ~ 122-96}
int s[] = new int[27];//1.开一个整型数组,统计字母出现的次数,下标对应 字母ASCII码-96
for (int i = 0; i < charOne.length; i++) {
s[charOne[i]-96] ++;
}
Arrays.sort(s);//2.对字母出现次数排序
int p = 26,count = 0;//3.计算漂亮度
for (int i = s.length-1; i >= 0; i--) {
if(s[i]==0){//说明已经没有字母了。
break;
}
count +=s[i] * p;
p--;
}
return count;
}
}