Input
输入一个字符串S(S的长度 <= 10000),S中没有除字母外的其他字符。
Output
由你将1-26分配给不同的字母,使得字符串S的完美度最大,输出这个完美度。
Input示例
dad
Output示例
77<pre name="code" class="cpp">#include <iostream> #include <algorithm> #include <cstdio> #include <cstdlib> #include <cstring> using namespace std; char s[10005]; int b[500]; int cmp(int a,int b){ return a>b; } int main() { int sum,len; while(scanf("%s",&s)!=EOF) { sum=0; memset(b,0,sizeof(b)); len=strlen(s); for(int i = 0;i < len ;i++) { if(s[i]>='a'&&s[i]<='z'){ b[s[i]]++; } else if(s[i]>='A'&&s[i]<='Z'){ s[i]=s[i]-27; b[s[i]]++; } } int k = 26; sort(b,b+150,cmp); for(int i = 0; i < 30, k >= 1; ++i, k--) { if(b[i]!=0){ sum=sum+b[i]*k; } } cout<<sum<<endl; } return 0; }