T2 WA0 求调

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int a[5];
int ton[519];
int len;
string s,m;
bool cmp2(int a,int b){
	return a>b;
}
int main(){
	ll ans=0;
	for(int i=1;i<=5;i++){
		cin >> a[i];
	}
	cin >> len;
	getline(cin,m);
	getline(cin,s);
	for(int i=0;i<len;i++){
		ton[s[i]]++;
	}
	sort(a+1,a+6);
	sort(ton+1,ton+515,cmp2);
	int t=0;
	for(int i=1;i<=300;i++){
		if(ton[i]>0){
			t++;
			if(t==1){
				ans+=ll(a[1]*ton[i]); 
			}else if(t>=2&&t<=17){
				 ans+=ll(a[2]*ton[i]);
			}else if(t>=18&&t<=25){
				ans+=ll(a[3]*ton[i]);
			}else if(t>=26&&t<=33){
				ans+=ll(a[4]*ton[i]);
			}else if(t>=34&&t<=45){
				ans+=ll(a[5]*ton[i]);
			}
		}
	}
	cout << ans;
	return 0;
}

上图是打字时,每根手指所控制的区域。每按一次键,拇指的疲劳度为a,食指的疲劳度为

b,中指的疲劳度为c,无名指的疲劳度为d,小指的疲劳度为e。现在让你来设计键盘,即

对于一个字符,安排一个键,一个键只拥有一个字符。使得打印给定的文章的疲劳度最小。

规定:键盘只包括图中第2行’`‘到’',第三行’Q’到’]‘,第四行’A’到’‘’,第五行’Z’到’/',第六行

的空格键。字符只包括键盘上的字符,对于一个键有2个字符的,只考虑下面那个字符,即

对于一个键X,它代表的字符是按一下X所打印的字符,而不是SHIFT+X打印出来的字

符。一切标准以上图为主,输入不会出现其他字符。(英文字母为大写)

输入格式:

第一行:a,b,c,d,e

第二行:一个数字,N,表示有N个字符

第三行:有N个字符

输出格式:

只有一行:ANS

1 个赞